【发布时间】:2019-11-17 18:15:11
【问题描述】:
我正在尝试读取 Util 类中的属性值。
我试过Environment 和@Value。但它为这些字段获得了Null 值。
@SpringBootApplication
@EnableJpaAuditing
public class EmployeeApplication {
@PostConstruct
private void init() {
System.out.println("AppInitializator initialization logic ...");
new Util().getTime();
}
public static void main(String[] args) throws Exception {
SpringApplication.run(EmployeeApplication.class, args);
}
}
public class Util {
@Autowired
private Environment env;
@Value("${defaultTimeFormat}")
private String defaultTimeFormat;
public void getTime(){
System.out.println(defaultTimeFormat);
System.out.println(env.getProperty("defaultTimeFormat"));
// method logic here
}
}
我通过将 Util 设置为 @Service 类并将其依赖项注入到 EmployeeApplication 中来解决了这个问题,如下所示。
@SpringBootApplication
@EnableJpaAuditing
public class EmployeeApplication {
@Autowired
Util util;
@PostConstruct
private void init() {
System.out.println("AppInitializator initialization logic ...");
util.getTime();
}
public static void main(String[] args) throws Exception {
SpringApplication.run(EmployeeApplication.class, args);
}
}
@Service
public class Util {
@Autowired
private Environment env;
@Value("${defaultTimeFormat}")
private String defaultTimeFormat;
public void getTime(){
System.out.println(defaultTimeFormat);
System.out.println(env.getProperty("defaultTimeFormat"));
// method logic here
}
}
但是spring-boot 中的方法是否正确?我是否需要将其设为Service/Component/Repository 才能从属性文件中读取?
【问题讨论】:
标签: spring-boot spring-properties