我创建了一个spring boot应用程序来实现Quartz调度程序。在Job类中,我想使用application.properties中的一些属性。如何注射?
我试过下面但是得到了null:
@Component
public class ScheduleJob implements org.quartz.Job {
private static final Logger LOGGER = LogManager.getLogger(ScheduleJob.class);
public ScheduleJob() {
}
@Value("${ijobs.service.url}")
private String ijobsUrl;
public void execute(JobExecutionContext context) throws JobExecutionException {
LOGGER.info("Job exceution starts--->");
System.out.println("-------------------"+ijobsUrl);
Spring需要使用@Component注释类来管理它(包括将任何属性加载到类中)。如果你使用“new”来创建对象,那么它就在Spring的控制之外,它不会将依赖项/值注入其中。
另外,如果使用Spring Boot:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-quartz.html,还有对Quartz的原生支持
首先,ScheduleJob
类应该用@Component
注释为spring来管理它。其次,如果您想要注入任何属性,您可以采用与注入ijobsUrl
值相似的方式来实现。
将您所需的属性放在application.properties中
@Value("${my.property}")
private String myProperty