如何使用 main 方法在 Spring 启动应用程序中访问 application.properties 文件中的值

How to access a value in the application.properties file in Spring Boot app with main method

我的 src/main/resources 文件夹中有一个 application.properties。 它有一个 属性

username=myname

我有一个class

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

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

当我在主方法中调用 printusername 函数时,如下所示

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

它打印空值。 请有人告诉我我错过了什么?

@Value 注释,如 @Autowired,仅当您的 class 由 Spring IoC 容器实例化时才有效。

尝试用 @Component 注释来注释您的 class:

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

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

然后在你的runnable中class:

public class RunnableClass {

    private static A object;

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

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

}

这种方式应该可行...