2010-01-13 3 views
13

Première: J'utilise Spring 3.0Comment puis-je injecter une valeur de propriété dans une annotation configurée 3.0 contrôleur ressort mvc

J'ai un problème lors de la configuration de ma classe de contrôleur. Le contrôleur utilise un service Web dont je souhaite définir l'adresse de point de terminaison à l'aide d'un fichier .properties.

@Controller 
public class SupportController { 

    @Value("#{url.webservice}") 
    private String wsEndpoint; 

    ... 

Dans mon application contexte xml fichier, j'ai défini ceci:

<context:property-placeholder location="/WEB-INF/*.properties" /> 

J'ai lu la documentation, en essayant des approches différentes (. Comme préfixe ajoutant SystemProperties), mais Je reçois toujours un message d'erreur me disant que ça n'existe pas.

Champ ou propriété 'url' ne peut pas être trouvé sur l'objet de type 'org.springframework.beans.factory.config.BeanExpressionContext'


Ok. Je l'ai compris.

Maintenant, dans le contrôleur:

@Value("#{settings['url.webservice']") 

Ensuite, dans la configuration du contexte que je ce "haricot aide":

<util:properties id="settings" 
location="/WEB-INF/supportweb.properties"></util:properties> 
+0

Dupliquer: http://stackoverflow.com/questions/1741968/using-spring3-value-to-access-propertyplaceholderconfigurer-values – skaffman

Répondre

11

Cela devrait fonctionner aussi:

@Value("${url.webservice}") 
private String wsEndpoint; 
2

vous devriez vérifier que le

<context:property-placeholder location="/WEB-INF/*.properties" /> 

est défini dans webmvc-config.xml où vous créez des instances des @Controllers

2

j'ai cette configuration et il fonctionne très bien:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
     <value>classpath:application.properties</value> 
     </list> 
    </property> 
</bean> 

et j'iniejct la propriété de cette façon

@Value("${root.log.level}") 
private String prop; 

le champ est correctement initialisé à la valeur "DEBUG".

Questions connexes