如何访问org.quartz.Job类中的应用程序属性?

时间:2019-03-27 07:06:35

标签: spring spring-boot properties quartz-scheduler quartz

我创建了一个Spring Boot应用程序来实现Quartz Scheduler。在Job类中,我想使用application.properties中的某些属性。如何注入?

当我尝试通过值注释使用它时,得到null。

这是我的代码

主类:

@SpringBootApplication
public class SchedulerApplication {

    public static void main(String[] args) {

        SpringApplication.run(SchedulerApplication.class, args);

    }

    @Bean
    public Scheduler scheduler() {

        Scheduler scheduler = null;
        try {

            SchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
            scheduler = stdSchedulerFactory.getScheduler();
            scheduler.start();


        } catch (SchedulerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return scheduler;

    }

}

工作班:

@Component
public class ScheduleJob implements org.quartz.Job {

    @Value("${ijobs.service.url}")
    public String ijobsUrl;

    public ScheduleJob() {

    }

    public void execute(JobExecutionContext context) throws JobExecutionException {
        String jobName = null;
        System.out.println("ijobsUrl--->"+ijobsUrl);
        } 
}

1 个答案:

答案 0 :(得分:0)

  

尝试在Job类上使用此@Order

  @Component
    @Order(Ordered.HIGHEST_PRECEDENCE + 99)
    public class ScheduleJob implements org.quartz.Job {

        @Value("${ijobs.service.url}")
        public String ijobsUrl;

        public ScheduleJob() {

        }

        public void execute(JobExecutionContext context) throws JobExecutionException {
            String jobName = null;
            System.out.println("ijobsUrl--->"+ijobsUrl);
            } 

  }
相关问题