spring-guide之scheduled-task

来源:互联网 发布:手持扫码器软件 编辑:程序博客网 时间:2024/05/21 04:23

spring-guide之scheduled-task

目标:部署一个spring的scheduling-task应用

需要准备的

  1. 大概15分钟
  2. 一个友好的文本编辑器或者IDE
  3. jdk1.8 或者更晚的(我用的1.7)
  4. gradle2.3+ 或者maven3.0+ (我用的gradle)
  5. 也可以直接从github上导入代码

    官方:git clone https://github.com/spring-guides/gs-scheduling-tasks.git
    我的:https://github.com/chenlisong/projects/spring-guides

代码实现

  1. 创建一个目录

    mkdir -p src/main/java/gs.scheduling.task;└── src    └── main        └── java            └── gs.scheduling.task
  2. 创建gradle的配置文件build.gradle

    buildscript {    repositories {        mavenCentral()    }    dependencies {        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE")    }}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'idea'apply plugin: 'spring-boot'jar {    baseName = 'spring-guide'    version =  '0.1.0'}repositories {    mavenCentral()}//我在这里将jdk改成1.7,原值1.8sourceCompatibility = 1.7targetCompatibility = 1.7dependencies {    compile("org.springframework.boot:spring-boot-starter-web")    testCompile('org.springframework.boot:spring-boot-starter-test')}
  3. 创建一个scheduled-task任务

    @Componentpublic class ScheduledTasks {    private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);    private static final SimpleDateFormat sdf = new SimpleDateFormat("hh:MM:ss");    @Scheduled(fixedRate=5000)    public void print() {        log.info("the time is now{}", sdf.format(new Date()));    }}
  4. 使用spring-boot启动web服务

    @SpringBootApplication@EnableSchedulingpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class);    }}

注解说明

  • @SpringBootApplication:是一个方便的注解用来包含下面的注解
  • @Configuration:在spring容器中定义bean/class的资源文件
  • @EnableAutoConfiguration:告知spring基于classpath的配置添加哪些bean文件,和各种各样的配置文件
  • @ComponentScan:告知spring去扫描gs.scheduling.task文件夹下的@Component,@configuration,@service标记的,并且启动@Controller
  • @EnableScheduling确保spring任务创建的环境,

构建成jar包的方式并执行

    //启动服务    ./gradlew bootRun -info | debug     //build成为jar包,并放在build/libs下    ./gradlew build    //cmd下执行jar并启动服务    java -jar build/libs/spirng-guide-0.1.0.jar

测试一下

2016-09-22 10:25:12.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:122016-09-22 10:25:17.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:172016-09-22 10:25:22.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:222016-09-22 10:25:27.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:272016-09-22 10:25:32.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:32
1 0
原创粉丝点击