2017-06-14 1 views
4

J'ai une application.properties dans mon dossier src/main/resources. il a une propriétéComment accéder à une valeur dans le fichier application.properties dans l'application Spring Boot avec la méthode principale

username=myname 

J'ai une classe

public class A 
{ 
    @Value("${username}") 
    private String username; 

    public void printUsername() 
    { 
     System.out.println(username); 
    } 
} 

quand j'appelle la fonction printusername dans ma principale méthode que follws

public static void main(String[] args) 
{ 
    A object=new A(); 
    object.printUsername(); 
} 

imprime nulle. s'il vous plaît quelqu'un peut me dire ce que j'ai raté?

+0

Mark à la fois variable 'username' et 'printUsername()' méthode comme 'static' et essayez. – harshavmb

+0

j'ai essayé. mais n'a pas fonctionné –

Répondre

5

L'annotation @Value, sous la forme @Autowired, ne fonctionne que si votre classe est instanciée par un conteneur Spring IoC.

Essayez de annoter votre classe avec @Component annotation:

@Component 
public class A 
{ 
    @Value("${username}") 
    private String username; 

    public void printUsername() 
    { 
     System.out.println(username); 
    } 
} 

Ensuite, dans votre classe runnable:

public class RunnableClass { 

    private static A object; 

    @Autowired 
    public void setA(A object){ 
     RunnableClass.object = object; 
    } 

    public static void main(String[] args) 
    { 
     object.printUsername(); 
    } 

} 

De cette façon devrait fonctionner ...

+0

Ouais, cela fonctionne – Mohit

+0

Oui cela fonctionne.Merci .. –