Как использовать application.properties в org.quartz.Job Class - PullRequest
0 голосов
/ 28 февраля 2019

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

Во-первых, класс ScheduleJob должен быть аннотирован @Component для весны, чтобы управлять им.Во-вторых, если вы хотите, чтобы какое-либо свойство было введено, вы можете сделать это аналогично тому, как вы вводите значение ijobsUrl.

укажите требуемое свойство в application.properties

@Value("${my.property}")
private String myProperty
0 голосов
/ 28 февраля 2019

Spring требует аннотирования класса с помощью @Component, чтобы он мог управлять им (включая загрузку любых свойств в класс).Если вы используете «new» для создания объекта, то он находится вне контроля Spring и не будет вводить в него зависимости / значения.

Примечание: есть встроенная поддержка Quartz при использовании Spring Boot: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-quartz.html

...