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

时间:2017-06-14 07:00:21

标签: java spring spring-boot properties-file

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

username=myname

我有一个班级

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

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

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

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

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

1 个答案:

答案 0 :(得分:5)

@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();
    }

}

这种方式应该有用......