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

问题描述 投票:0回答:2

我创建了一个spring boot应用程序来实现Quartz调度程序。在Job类中,我想使用application.properties中的一些属性。如何注射?

我试过下面但是得到了null:

    @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);
spring spring-boot quartz-scheduler job-scheduling
2个回答
1
投票

Spring需要使用@Component注释类来管理它(包括将任何属性加载到类中)。如果你使用“new”来创建对象,那么它就在Spring的控制之外,它不会将依赖项/值注入其中。

另外,如果使用Spring Boot:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-quartz.html,还有对Quartz的原生支持


0
投票

首先,ScheduleJob类应该用@Component注释为spring来管理它。其次,如果您想要注入任何属性,您可以采用与注入ijobsUrl值相似的方式来实现。

将您所需的属性放在application.properties中

@Value("${my.property}")
private String myProperty
© www.soinside.com 2019 - 2024. All rights reserved.