如何使用 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();
}
}
这种方式应该可行...
我的 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();
}
}
这种方式应该可行...