我的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。 请有人告诉我我错过了什么?
答案 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();
}
}
这种方式应该有用......