spring - 如何访问 org.quartz.Job 类中的应用程序属性?
问题描述
我创建了一个 spring boot 应用程序来实现 Quartz 调度程序。在 Job 类中,我想使用 application.properties 中的一些属性。怎么注射?
当我尝试使用值注释使用它时,得到空值。
这是我的代码
主类:
@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);
}
}
解决方案
尝试在 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);
}
}
推荐阅读
- sqlite - SQLite-Net 扩展 | 对同一实体的外键引用
- django - 在 Django 中使用 DetailView 和 Formset 链接到其他外部模型
- html - 跨度角
- kerberos - 用于 spark2 作业的 Kudu 中的 kerberos 身份验证
- laravel - CircleCI YAML 配置失败
- swift - 表格视图中的图像自动重新加载
- php - 在php中的文件中的已知单词后查找引号中的一行
- vbscript - 在 vbs 脚本中指定路径
- php - Laravel 5.6 APP_DEBUG 不工作
- jquery - 填充所有可放置 div 后启用提交按钮