diff --git a/demo-task/demo-task-spring/.gitignore b/demo-task/demo-task-spring/.gitignore
deleted file mode 100644
index 82eca33..0000000
--- a/demo-task/demo-task-spring/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-/target/
-!.mvn/wrapper/maven-wrapper.jar
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/build/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
\ No newline at end of file
diff --git a/demo-task/demo-task-spring/README.md b/demo-task/demo-task-spring/README.md
index c56646e..df68d07 100644
--- a/demo-task/demo-task-spring/README.md
+++ b/demo-task/demo-task-spring/README.md
@@ -1,77 +1,38 @@
# spring-boot-demo-task
-> 此 demo 主要演示了 Spring Boot 如何快速实现定时任务。
+> 此 demo 主要演示了 Spring Boot 如何通过 Spring Task 快速实现定时任务。
-## pom.xml
+## 1.开发步骤
+
+### 1.1.添加依赖
```xml
-
-
- 4.0.0
-
- spring-boot-demo-task
- 1.0.0-SNAPSHOT
- jar
-
- spring-boot-demo-task
- Demo project for Spring Boot
-
-
- com.xkcoding
- spring-boot-demo
- 1.0.0-SNAPSHOT
-
-
-
- UTF-8
- UTF-8
- 1.8
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.apache.commons
- commons-lang3
-
-
-
- org.projectlombok
- lombok
- true
-
-
-
- cn.hutool
- hutool-all
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
- spring-boot-demo-task
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
+
+
+ com.xkcoding
+ common-tools
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
```
-## TaskConfig.java
+### 1.2.SpringTask的自动装配
> 此处等同于在配置文件配置
>
@@ -81,18 +42,9 @@
> ```
```java
-/**
- *
- * 定时任务配置,配置线程池,使用不同线程执行任务,提升效率
- *
- *
- * @author yangkai.shen
- * @date Created in 2018-11-22 19:02
- */
-@Configuration
@EnableScheduling
-@ComponentScan(basePackages = {"com.xkcoding.task.job"})
-public class TaskConfig implements SchedulingConfigurer {
+@Configuration
+public class TaskAutoConfiguration implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskExecutor());
@@ -106,25 +58,33 @@ public class TaskConfig implements SchedulingConfigurer {
*/
@Bean
public Executor taskExecutor() {
- return new ScheduledThreadPoolExecutor(20, new BasicThreadFactory.Builder().namingPattern("Job-Thread-%d").build());
+ return new ScheduledThreadPoolExecutor(20, new NamedThreadFactory("Job-Thread-", false));
}
}
```
-## TaskJob.java
+### 1.3.配置文件
+
+```yaml
+server:
+ port: 8080
+ servlet:
+ context-path: /demo
+# 下面的配置等同于 TaskConfig
+#spring:
+# task:
+# scheduling:
+# pool:
+# size: 20
+# thread-name-prefix: Job-Thread-
+```
+
+### 1.4.创建定时任务
```java
-/**
- *
- * 定时任务
- *
- *
- * @author yangkai.shen
- * @date Created in 2018-11-22 19:09
- */
-@Component
@Slf4j
-public class TaskJob {
+@Component
+public class MockSpringTask {
/**
* 按照标准时间来算,每隔 10s 执行一次
@@ -154,22 +114,11 @@ public class TaskJob {
}
```
-## application.yml
+## 2.测试
-```yaml
-server:
- port: 8080
- servlet:
- context-path: /demo
-# 下面的配置等同于 TaskConfig
-#spring:
-# task:
-# scheduling:
-# pool:
-# size: 20
-# thread-name-prefix: Job-Thread-
-```
+启动 `SpringTaskApplication` 观察控制台日志
+
+## 3.参考
-## 参考
+- [Spring Boot 官方文档之定时任务](https://docs.spring.io/spring-boot/docs/3.0.0-M4/reference/htmlsingle/#features.task-execution-and-scheduling)
-- Spring Boot官方文档:https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#boot-features-task-execution-scheduling
diff --git a/demo-task/demo-task-spring/pom.xml b/demo-task/demo-task-spring/pom.xml
index b0abd02..5fc67b3 100644
--- a/demo-task/demo-task-spring/pom.xml
+++ b/demo-task/demo-task-spring/pom.xml
@@ -1,6 +1,12 @@
+
+ com.xkcoding
+ demo-task
+ 1.0.0-SNAPSHOT
+
+
4.0.0
demo-task-spring
@@ -10,27 +16,19 @@
demo-task-spring
Demo project for Spring Boot
-
- com.xkcoding
- spring-boot-demo
- 1.0.0-SNAPSHOT
-
-
- UTF-8
- UTF-8
- 1.8
+ 17
- org.springframework.boot
- spring-boot-starter-web
+ com.xkcoding
+ common-tools
- org.apache.commons
- commons-lang3
+ org.springframework.boot
+ spring-boot-starter-web
@@ -40,11 +38,6 @@
- cn.hutool
- hutool-all
-
-
-
org.springframework.boot
spring-boot-starter-test
test
diff --git a/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/SpringBootDemoTaskApplication.java b/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/SpringTaskApplication.java
similarity index 73%
rename from demo-task/demo-task-spring/src/main/java/com/xkcoding/task/SpringBootDemoTaskApplication.java
rename to demo-task/demo-task-spring/src/main/java/com/xkcoding/task/SpringTaskApplication.java
index 8f75a00..afc5aa6 100644
--- a/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/SpringBootDemoTaskApplication.java
+++ b/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/SpringTaskApplication.java
@@ -12,9 +12,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @date Created in 2018-11-22 19:00
*/
@SpringBootApplication
-public class SpringBootDemoTaskApplication {
+public class SpringTaskApplication {
public static void main(String[] args) {
- SpringApplication.run(SpringBootDemoTaskApplication.class, args);
+ SpringApplication.run(SpringTaskApplication.class, args);
}
}
diff --git a/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/config/TaskConfig.java b/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/configuration/TaskAutoConfiguration.java
similarity index 74%
rename from demo-task/demo-task-spring/src/main/java/com/xkcoding/task/config/TaskConfig.java
rename to demo-task/demo-task-spring/src/main/java/com/xkcoding/task/configuration/TaskAutoConfiguration.java
index 9a00e9e..7f17fd0 100644
--- a/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/config/TaskConfig.java
+++ b/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/configuration/TaskAutoConfiguration.java
@@ -1,8 +1,7 @@
-package com.xkcoding.task.config;
+package com.xkcoding.task.configuration;
-import org.apache.commons.lang3.concurrent.BasicThreadFactory;
+import cn.hutool.core.thread.NamedThreadFactory;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
@@ -19,10 +18,9 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
* @author yangkai.shen
* @date Created in 2018-11-22 19:02
*/
-@Configuration
@EnableScheduling
-@ComponentScan(basePackages = {"com.xkcoding.task.job"})
-public class TaskConfig implements SchedulingConfigurer {
+@Configuration
+public class TaskAutoConfiguration implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskExecutor());
@@ -36,6 +34,6 @@ public class TaskConfig implements SchedulingConfigurer {
*/
@Bean
public Executor taskExecutor() {
- return new ScheduledThreadPoolExecutor(20, new BasicThreadFactory.Builder().namingPattern("Job-Thread-%d").build());
+ return new ScheduledThreadPoolExecutor(20, new NamedThreadFactory("Job-Thread-", false));
}
}
diff --git a/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/job/TaskJob.java b/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/job/MockSpringTask.java
similarity index 97%
rename from demo-task/demo-task-spring/src/main/java/com/xkcoding/task/job/TaskJob.java
rename to demo-task/demo-task-spring/src/main/java/com/xkcoding/task/job/MockSpringTask.java
index 94965e1..ab97dd3 100644
--- a/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/job/TaskJob.java
+++ b/demo-task/demo-task-spring/src/main/java/com/xkcoding/task/job/MockSpringTask.java
@@ -15,9 +15,9 @@ import java.util.Date;
* @author yangkai.shen
* @date Created in 2018-11-22 19:09
*/
-@Component
@Slf4j
-public class TaskJob {
+@Component
+public class MockSpringTask {
/**
* 按照标准时间来算,每隔 10s 执行一次
diff --git a/demo-task/demo-task-spring/src/main/resources/application.yml b/demo-task/demo-task-spring/src/main/resources/application.yml
index 5105cc3..6778e2e 100644
--- a/demo-task/demo-task-spring/src/main/resources/application.yml
+++ b/demo-task/demo-task-spring/src/main/resources/application.yml
@@ -8,4 +8,4 @@ server:
# scheduling:
# pool:
# size: 20
-# thread-name-prefix: Job-Thread-
\ No newline at end of file
+# thread-name-prefix: Job-Thread-
diff --git a/demo-task/demo-task-spring/src/test/java/com/xkcoding/task/SpringBootDemoTaskApplicationTests.java b/demo-task/demo-task-spring/src/test/java/com/xkcoding/task/SpringBootDemoTaskApplicationTests.java
deleted file mode 100644
index e4e281d..0000000
--- a/demo-task/demo-task-spring/src/test/java/com/xkcoding/task/SpringBootDemoTaskApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.xkcoding.task;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class SpringBootDemoTaskApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/demo-task/demo-task-spring/src/test/java/com/xkcoding/task/SpringTaskApplicationTests.java b/demo-task/demo-task-spring/src/test/java/com/xkcoding/task/SpringTaskApplicationTests.java
new file mode 100644
index 0000000..761e9d3
--- /dev/null
+++ b/demo-task/demo-task-spring/src/test/java/com/xkcoding/task/SpringTaskApplicationTests.java
@@ -0,0 +1,13 @@
+package com.xkcoding.task;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+public class SpringTaskApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/demo-task/pom.xml b/demo-task/pom.xml
index 02843d2..262eea6 100644
--- a/demo-task/pom.xml
+++ b/demo-task/pom.xml
@@ -18,4 +18,8 @@
17
+
+ demo-task-spring
+
+