Spring JndiTemplate и параметризованный поиск JNDI из контекста - PullRequest
0 голосов
/ 27 мая 2010

Как я могу представить new JndiTemplate(properties).lookup(name), где name - строковая переменная, в файле контекста приложения Spring?Могу ли я выразить это способом, подобным следующему, где приложение предоставляет name при получении идентификатора компонента?

<util:properties id="applicationProperties"
    location="classpath:application.properties"/>

<jee:jndi-lookup id="connectionFactory"
    jndi-name="${name}"
    environment-ref="applicationProperties"
    resource-ref="false" />

1 Ответ

2 голосов
/ 27 мая 2010

Насколько я понимаю, вам нужно что-то вроде этого:

<bean id = "jndiTemplate" class = "org.springframework.jndi.JndiTemplate">
    <property name = "environment" ref = "applicationProperties" />
</bean>

<bean id = "objectFromJndi" factory-bean = "jndiTemplate" factory-method = "lookup"
    scope = "prototype" />

-

ApplicationContext ctx = ...;
Object o = ctx.getBean("objectFromJndi", name);

Это будет работать, потому что getBean может передавать аргументы factory-method.

...