2010-05-27 13 views
0

Comment représenter new JndiTemplate(properties).lookup(name), où name est une variable chaîne, dans le fichier contextuel de l'application Spring? Puis-je l'exprimer d'une manière similaire à ce qui suit, où l'application fournit name quand il récupère l'ID de bean?Spring JndiTemplate et recherche JNDI paramétrée à partir du contexte

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

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

Répondre

2

Pour autant que je comprends, vous avez besoin de quelque chose comme ceci:

<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); 

Cela fonctionnera, car getBean peut passer des arguments à factory-method.

+0

ah si c'est le cas, j'ai peut-être mal compris la question. Il me semble me rappeler qu'il existe aussi un support pour saisir les propriétés des autres classes et les utiliser comme variables au printemps 3. – wds