如何在org.quartz.Job类中使用application.properties

时间:2019-02-28 07:43:10

标签: spring spring-boot quartz-scheduler job-scheduling

我创建了一个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);

2 个答案:

答案 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