2

私は次のクラスを持っています:

@Component
public class MyClass {

@Value("${main.url}") private String mainUrl;

次の XML コンテキスト:

<context:annotation-config/>
  <context:component-scan base-package="mypackage"/>

  <context:property-placeholder file-encoding="UTF-8" location="classpath:/app.properties" ignore-unresolvable="true"/>

および小道具ファイル:

main.url=veryniceurl.com

インジェクションは機能しません。常に null です。私は似たような例をたくさん読んで、すべて問題ないと思っていましたが、そうではありませんでした。私が何かを忘れていたら、誰か教えてもらえますか? Mule ESB を使用しています。

4

3 に答える 3

1

@Value は Mule では機能しないようです。代わりに、コンポーネントを Spring Bean としてロードしていると仮定して、Mule XML を介して接続する必要があります。

<spring:bean id="MyClass" class="com.example.MyClass">
   <spring:property name="mainUrl" value="${main.url}"/>
</spring:bean>
于 2013-04-18T15:25:58.457 に答える
0

プロパティに ID を指定し、次の構文を使用します。

@Value("#{jetProperties['jetBean.name']}")

<!-- define the properties file to use -->
<util:properties id="jetProperties" location="classpath:/jet.properties" />

http://chrislovecnm.com/2010/03/08/spring-3-java-based-configuration-with-value/から

于 2012-12-17T15:18:56.857 に答える
0

dispatcher-servlet.xml にコンテキスト プレースホルダーを追加しましたか? hereに従って、 @Controller クラスの Spring @Value アノテーションは、プロパティファイル内の値に評価されないため、アプリケーションコンテキストの代わりにそこに追加することで解決したようです

于 2012-12-17T15:21:44.683 に答える