Как получить доступ к свойству приложения в классе org.quartz.Job?

Я создал приложение весенней загрузки для реализации планировщика Quartz. В классе 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);
        } 
}

person Tanu Garg    schedule 27.03.2019    source источник


Ответы (1)


попробуйте использовать этот @Order в классе Job

  @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);
            } 

  }
person kumar    schedule 27.03.2019
comment
ijobsUrl---›null становится нулевым :( - person Tanu Garg; 27.03.2019
comment
настроен через кварц.свойства в пути к классам - person kumar; 27.03.2019
comment
ijobs.service.url =/что-то добавить это свойство в вашquart.properties Properties p = new Properties(); p.load(/resources/quartz.properties); // путь к вашему файлу свойств System.out.println(p.getProperty(ijobs.service.url); - person kumar; 27.03.2019
comment
и просто посмотрите подробности здесь,..... quartz-scheduler .org/documentation/quartz-1.x/configuration - person kumar; 27.03.2019