Die anderen Antworten bedeckt das Namespace Problem, aber ich werde hinzufügen, dass ich festgestellt, dass der Kontext: „: Bohnen spring“ Tags property-Platzhalter-Tag zwischen sein muß. Hier ist ein Beispiel, das davon ausgeht, dass die Eigenschaftsdatei eine Eigenschaft namens „jmsBrokerURL“ setzt:
<mule xmlns="http://www.mulesoft.org/schema/mule/core" version="EE-3.4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<spring:beans>
<context:property-placeholder location="C:/path/to/file/settings.properties" />
<spring:bean name="myConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<spring:property name="brokerURL" value="${jmsBrokerURL}" />
</spring:bean>
</spring:beans>
<flow name="MyFlow" doc:name="MyFlow">
<!-- Flow configuration here. -->
</flow>
</mule>
Eine alternative Methode Eigenschaften des Lesens (und ich bevorzuge) ist die Feder verwenden „util: Eigenschaften“ Tag-Eigenschaften zu lesen in eine Properties-Bean, auf die Sie sich dann mit Spring EL beziehen. Achten Sie in diesem Fall darauf, dass Sie die Spring EL "# {}" Notation anstelle von "$ {}" verwenden, um auf das Objekt und seine Variablen zu verweisen. Hier ist das obige Beispiel für diese Technik modifiziert:
<mule xmlns="http://www.mulesoft.org/schema/mule/core" version="EE-3.4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<spring:beans>
<util:properties id="myConfig" location="C:/path/to/file/settings.properties" />
<spring:bean name="myConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<spring:property name="brokerURL" value="#{myConfig.jmsBrokerURL}" /> <!-- Note the pound (hash) symbol. -->
</spring:bean>
</spring:beans>
<flow name="MyFlow" doc:name="MyFlow">
<!-- Flow configuration here. -->
</flow>
</mule>
Ich mag diese letztere Ansatz vor allem, weil ich mit mehreren Eigenschaften Dateien umgehen kann und enthalten Anwendungskontext Dateien leichter. Der Kontext: Eigenschaft-Platzhalter-Tag kann problematisch sein, wenn Sie mit mehreren Eigenschaftendateien arbeiten oder eine Anwendungskontextdatei in eine andere einschließen.
Danke. Das scheint das Namespace-Problem behoben zu haben, aber ich erhalte eine FileNotFound-Ausnahme, wenn die Datei eindeutig existiert. Haben Sie dieses Problem schon einmal erlebt? – Narabhut
Neue Frage zu diesem Problem, hier ist der Link http://stackoverflow.com/questions/17326783/filenotfound-exception-while-loading-from-a-properties-file-in-mule Bitte überprüfen Sie, ob Sie lösen können – Narabhut
Es gibt eine Antwort für Ihre Frage. Versuch es bitte. Das sollte es lösen. – user1760178