我的 Spring 配置如下所示:
<jee:remote-slsb id="ejb1"
jndi-name="org.example.Ejb1"
business-interface="org.example.Ejb1"
environment-ref="ejb1Properties">
</jee:remote-slsb>
<util:properties id="ejb1Properties" location="classpath:ejb1.properties"/>
<jee:remote-slsb id="ejb2"
jndi-name="org.example.Ejb2"
business-interface="org.example.Ejb2"
environment-ref="ejb2Properties">
</jee:remote-slsb>
<util:properties id="ejb2Properties" location="classpath:ejb2.properties"/>
...因为这两个 EJB 可能使用不同的 JNDI URL、不同的上下文工厂和身份验证凭据。ejb1.properties 和 ejb2.properties 具有相同名称的属性,但具有不同的值:
ejb1.properties:
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://example1:7101
java.naming.security.principal=id1
java.naming.security.credential=foo
ejb2.properties:
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://example2:7101
java.naming.security.principal=id2
java.naming.security.credential=bar
但是,我希望我的用户拥有一个要维护的属性文件,而不是两个。
显然,编写一个从核心属性文件生成 ejb1.properties 和 ejb2.properties 的启动脚本很容易。但是有没有办法让 Spring 从单个文件中获取属性,并适当地映射名称?