spring-guide之scheduled-task

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.8
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    
    dependencies {
        compile("org.springframework.boot:spring-boot-starter-web")
        testCompile('org.springframework.boot:spring-boot-starter-test')
    }
  3. 創建一個scheduled-task任務

    @Component
    public 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
    @EnableScheduling
    public 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:12
2016-09-22 10:25:17.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:17
2016-09-22 10:25:22.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:22
2016-09-22 10:25:27.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:27
2016-09-22 10:25:32.342  INFO 8000 --- [pool-1-thread-1] gs.scheduling.task.ScheduledTasks        : the time is now10:09:32
發佈了59 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章