Как получить доступ к значению в приложении.файл свойств в приложении Spring Boot с основным методом


У меня есть заявление.свойства в моей папке src / main / resources. у него есть одно свойство

username=myname

У меня есть класс

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

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

Когда я вызываю функцию printusername в своем основном методе как follws

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

Выводит null. пожалуйста, кто-нибудь может сказать мне, что я пропустил?

1 4

1 ответ:

Аннотация @Value, как @Autowired, работает только в том случае, если ваш класс создан контейнером Spring IoC.

Попробуйте аннотировать свой класс с помощью @Component аннотации:

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

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

Тогда в вашем классе 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();
    }

}

Этот способ должен работать...