190. Spring Boot 2.0 quartz :job data property和inject service

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

【最新动态】

 (1)Spring Boot QQ 4群:776151650

 (2)Spring Cloud视频更新到最新章节:《Feign添加 fallbackFactory 属性来触发请求进行容灾降级

 (3)SpringBoot微信公众号最新更新《193. Spring Boot 数据库迁移:概述》、《192. Spring Boot 2.0 quartz:任务动态管理-添加

历史相关章节:

 188. Spring Boot 2.0 quartz :回顾

 189. Spring Boot 2.0 quartz :Hello World

 

前言:

       在前一篇文章简单了使用了下,但是在实际当中,我们会在Job类中使用Job Data Property和注入Spring的bean等等情况,要如何解呢?

 

说明:

(1)Spring Boot 版本:2.0.0.RELEASE;

(2)Quartz版本:2.3.0

 

一、使用Job Data Property

1.1 在JobDetail中设置Job Data

       JobDetail构建的时候,是可以设置jobData的,使用的方法是usingJobData(key,value),所以在构建Job的时候,我们可以给Job传递一些data,如下实例(以下代码显示不全,可以左右滑动):

@Bean
public JobDetail myJobDetail() {        
   return JobBuilder.newJob(MyJob.class).withIdentity("MyJob")
           .usingJobData("name","悟纤")
           .storeDurably().build();
}

 

1.2 在Job中接收Job Data

       接收是很简单的,主要定义一个属性,然后设置对应的setter方法即可,如下:

public class MyJob extends QuartzJobBean{
   private String name;
   //Inject the "name" job data property
   public void setName(String name) {
       this.name = name;
   }
   @Override
   protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
       System.out.println("hello,"+this.name+");  
   }  
}

 

 

 

二、在Job中注入Service

       在Job类中注入service的话,也是很简单的,直接使用@Autowired即可完成注入,然后进行使用了,如下代码:

    @Autowired
   public HelloService helloService;

     还记得在spring boot 1.0的时候,怎么一个费劲嘛?在2.0的话,就可以直接注入使用了,就是这么简单!

 

点赞、转发、评论,伸出你的双手666…召唤你的小蚂蚁:


你就是你,不一样的小蚂蚁!

 

猜你喜欢

转载自412887952-qq-com.iteye.com/blog/2421563