我创建了一个Spring Boot应用程序来实现Quartz Scheduler。在Job类中,我想使用application.properties中的某些属性。如何注入?
我已经在下面尝试过,但是得到空值:
@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);
答案 0 :(得分:1)
Spring要求使用@Component注释类以对其进行管理(包括将任何属性加载到类中)。如果使用“ new”创建对象,则该对象不在Spring的控制范围之内,并且不会将依赖项/值注入其中。
另一方面,如果使用Spring Boot,则对Quartz有本地支持:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-quartz.html
答案 1 :(得分:0)
首先,应该使用ScheduleJob
来对@Component
类进行注释,以便Spring管理它。其次,如果要注入任何属性,则可以采用与注入ijobsUrl
值类似的方式进行。
将所需的属性放入application.properties
@Value("${my.property}")
private String myProperty