printemps - lire la valeur de la propriété à partir des propriétés de fichier dans le champ statique de la classe

J'ai une classe utilitaire où j'ai une méthode qui requiert le nom d'utilisateur et le mot de passe pour se connecter à d'autres url. J'ai besoin de gardé que le nom d'utilisateur dans les propriétés du fichier pour que je puisse le modifier à tout moment. Mais comme je suis à l'aide de la méthode statique (en cours de l'utilitaire de classe) , l'Émission, c'est d'en montrer la valeur null .(c'est à dire qu'il n'est pas en mesure de lire le fichier de propriétés).

Mais quand je ckecked que les valeurs dans un autre contrôleur ils sont là.
Donc ma question est comment faire pour lire la valeur de la propriété dans le champ statique

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

//en Utitlity code de la classe

  @Value("${app.username}")
      static String userName;

public static connectToUrl(){
  //use userName
 //userName showing null
}
  • Comment est votre classe utilitaire chargé/injecté ?
  • Mon utilitaire de classe est une classe "normale" pas de printemps de la classe et de l'appel de connectToUrl comme normale statique d'appel
  • Si votre utilitaire de la classe n'est pas chargé par le printemps contexte, on ne peut pas injecter des paramètres. Cependant, vous pouvez toujours utiliser la solution proposée par @AmitChotaliya. Une bonne pratique avec le Printemps, est d'utiliser un singleton de haricots chargé par le printemps contexte au lieu de méthodes statiques dans les classes utilitaires.
  • merci je suppose que la solution fournie par AmitChotaliya devrait fonctionner avec mon problème.Malades essayer. Mais pouvez-vous peu expliquer au sujet de votre point >> "Une bonne pratique avec le Printemps, est d'utiliser un singleton de haricots chargé par le printemps contexte au lieu de méthodes statiques dans les classes utilitaires.".. un lien pour plus d'info
  • Il y a beaucoup de raisons pour cela, mais au moins, vous avez votre @Value("${app.username}") bien initialisé correctement sans rien faire de spécial. Si vous voulez des liens, la 2e réponse à cette question peut vous donner quelques autres "arguments" stackoverflow.com/questions/7270681/.... Base sur ma propre expérience, j'ai utiliser des méthodes statiques de classe utilitaire que si je n'ai pas besoin de l'initialisation de les utiliser (ce qui n'est pas votre cas). Sinon, j'ai utiliser des beans spring.
InformationsquelleAutor user3608352 | 2014-07-09