From 20f19fe25e25b314e9a5ee7c33cabf150dedd7ed Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 20:09:59 +0800
Subject: [PATCH 1/9] =?UTF-8?q?Springboot=E6=95=B4=E5=90=88Swagger?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Springboot-Swagger/README.MD | 3 +
Springboot-Swagger/pom.xml | 67 +++++++++++++++++++
.../swagger/SpringBootSawggerApplication.java | 12 ++++
.../swagger/configure/SwaggerConfigure.java | 31 +++++++++
.../swagger/controller/SwaggerController.java | 33 +++++++++
.../src/main/resources/application.yml | 9 +++
.../src/main/resources/logback.xml | 37 ++++++++++
7 files changed, 192 insertions(+)
create mode 100644 Springboot-Swagger/README.MD
create mode 100644 Springboot-Swagger/pom.xml
create mode 100644 Springboot-Swagger/src/main/java/com/button/boot/swagger/SpringBootSawggerApplication.java
create mode 100644 Springboot-Swagger/src/main/java/com/button/boot/swagger/configure/SwaggerConfigure.java
create mode 100644 Springboot-Swagger/src/main/java/com/button/boot/swagger/controller/SwaggerController.java
create mode 100644 Springboot-Swagger/src/main/resources/application.yml
create mode 100644 Springboot-Swagger/src/main/resources/logback.xml
diff --git a/Springboot-Swagger/README.MD b/Springboot-Swagger/README.MD
new file mode 100644
index 0000000..0cf5c89
--- /dev/null
+++ b/Springboot-Swagger/README.MD
@@ -0,0 +1,3 @@
+# 本案例主要实现SpringBoot整合Swagger
+项目访问地址如下:
+http://localhost:8080/swagger/swagger-ui.html
\ No newline at end of file
diff --git a/Springboot-Swagger/pom.xml b/Springboot-Swagger/pom.xml
new file mode 100644
index 0000000..98f8a45
--- /dev/null
+++ b/Springboot-Swagger/pom.xml
@@ -0,0 +1,67 @@
+
+ 4.0.0
+ com.button
+ Springboot-Swagger
+ 0.0.1-SNAPSHOT
+ jar
+
+ springboot整合swagger
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.1.RELEASE
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ io.springfox
+ springfox-swagger2
+ 2.7.0
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.7.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+ true
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ -Dfile.encoding=UTF-8
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Springboot-Swagger/src/main/java/com/button/boot/swagger/SpringBootSawggerApplication.java b/Springboot-Swagger/src/main/java/com/button/boot/swagger/SpringBootSawggerApplication.java
new file mode 100644
index 0000000..71892f0
--- /dev/null
+++ b/Springboot-Swagger/src/main/java/com/button/boot/swagger/SpringBootSawggerApplication.java
@@ -0,0 +1,12 @@
+package com.button.boot.swagger;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringBootSawggerApplication {
+ // 项目启动入口
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootSawggerApplication.class, args);
+ }
+}
diff --git a/Springboot-Swagger/src/main/java/com/button/boot/swagger/configure/SwaggerConfigure.java b/Springboot-Swagger/src/main/java/com/button/boot/swagger/configure/SwaggerConfigure.java
new file mode 100644
index 0000000..3af7cc4
--- /dev/null
+++ b/Springboot-Swagger/src/main/java/com/button/boot/swagger/configure/SwaggerConfigure.java
@@ -0,0 +1,31 @@
+package com.button.boot.swagger.configure;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfigure {
+ @Bean
+ public Docket createRestApiButton() {
+ return new Docket(DocumentationType.SWAGGER_2).groupName("SwaggerTest").apiInfo(apiInfo())
+ .select().apis(RequestHandlerSelectors.basePackage("com.button.boot.swagger.controller")) //指定要扫描的包
+ .paths(PathSelectors.any()).build();
+ }
+ private ApiInfo apiInfo() {
+ return new ApiInfoBuilder()
+ .title("Swagger开发测试文档")
+ .description("SpringBoot整合Swagger")
+ .termsOfServiceUrl("http://www.baidu.com")
+ .version("1.0")
+ .build();
+ }
+}
diff --git a/Springboot-Swagger/src/main/java/com/button/boot/swagger/controller/SwaggerController.java b/Springboot-Swagger/src/main/java/com/button/boot/swagger/controller/SwaggerController.java
new file mode 100644
index 0000000..17bcea5
--- /dev/null
+++ b/Springboot-Swagger/src/main/java/com/button/boot/swagger/controller/SwaggerController.java
@@ -0,0 +1,33 @@
+package com.button.boot.swagger.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api("swagger相关的api")
+@RestController
+@RequestMapping(value = "/sw")
+public class SwaggerController {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SwaggerController.class);
+
+ @ApiOperation(value = "swaggerDemoController", notes = "接口测试")
+ @GetMapping(path = "/testInfo")
+ public String testInfo() {
+ LOGGER.info("开始发布续保查询消息");
+ return "你好";
+ }
+
+ @PostMapping(path = "/getId")
+ @ApiOperation(value = "获取id")
+ public String getClcz(@RequestParam(value = "id", required = false) String id) {
+ return id;
+ }
+
+}
diff --git a/Springboot-Swagger/src/main/resources/application.yml b/Springboot-Swagger/src/main/resources/application.yml
new file mode 100644
index 0000000..1639b82
--- /dev/null
+++ b/Springboot-Swagger/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+server:
+ servlet:
+ context-path: /swagger
+ port: 8080
+ uri-encoding: utf-8
+
+logging:
+ file: logback.xml
+
\ No newline at end of file
diff --git a/Springboot-Swagger/src/main/resources/logback.xml b/Springboot-Swagger/src/main/resources/logback.xml
new file mode 100644
index 0000000..fb91b69
--- /dev/null
+++ b/Springboot-Swagger/src/main/resources/logback.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+
+ ${LOG_HOME}/springboot_monitor.log
+
+
+
+ ${LOG_HOME}/springboot_swagger.log.%d{yyyy-MM-dd}.%i.log
+
+
+
+ 100MB
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+
+
+
+
+
+
\ No newline at end of file
--
Gitee
From d906267472eeb477dc222b6ddcf2849f7202da78 Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 20:13:10 +0800
Subject: [PATCH 2/9] =?UTF-8?q?SpringBoot=E6=95=B4=E5=90=88quartz=E5=AE=9E?=
=?UTF-8?q?=E7=8E=B0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1(=E5=8D=95?=
=?UTF-8?q?=E6=9C=BA=E7=89=88)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Springboot-Quartz-StandAlone/README.MD | 2 +
Springboot-Quartz-StandAlone/pom.xml | 73 +++++++++++++++++++
.../SpringBootAQuartzAloneApplication.java | 13 ++++
.../alone/config/MyAdaptableJobFactory.java | 19 +++++
.../alone/config/QuartzAloneConfigure.java | 43 +++++++++++
.../quartz/alone/timertask/QuartzTaskJob.java | 18 +++++
.../src/main/resources/application.yml | 8 ++
.../src/main/resources/logback.xml | 34 +++++++++
8 files changed, 210 insertions(+)
create mode 100644 Springboot-Quartz-StandAlone/README.MD
create mode 100644 Springboot-Quartz-StandAlone/pom.xml
create mode 100644 Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/SpringBootAQuartzAloneApplication.java
create mode 100644 Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/MyAdaptableJobFactory.java
create mode 100644 Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/QuartzAloneConfigure.java
create mode 100644 Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/timertask/QuartzTaskJob.java
create mode 100644 Springboot-Quartz-StandAlone/src/main/resources/application.yml
create mode 100644 Springboot-Quartz-StandAlone/src/main/resources/logback.xml
diff --git a/Springboot-Quartz-StandAlone/README.MD b/Springboot-Quartz-StandAlone/README.MD
new file mode 100644
index 0000000..1b3eb00
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/README.MD
@@ -0,0 +1,2 @@
+# 本案例实现SpringBoot整合quartz实现定时任务(单机版)
+cron表达式配置在application.yml文件中
\ No newline at end of file
diff --git a/Springboot-Quartz-StandAlone/pom.xml b/Springboot-Quartz-StandAlone/pom.xml
new file mode 100644
index 0000000..af7451a
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/pom.xml
@@ -0,0 +1,73 @@
+
+ 4.0.0
+ com.button
+ Springboot-Quartz-StandAlone
+ 0.0.1-SNAPSHOT
+ jar
+
+ springboot集成quartz(单机)
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.5.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+
+ org.quartz-scheduler
+ quartz
+
+
+ org.springframework
+ spring-context-support
+
+
+ org.springframework
+ spring-tx
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ -Dfile.encoding=UTF-8
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/SpringBootAQuartzAloneApplication.java b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/SpringBootAQuartzAloneApplication.java
new file mode 100644
index 0000000..6c57720
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/SpringBootAQuartzAloneApplication.java
@@ -0,0 +1,13 @@
+package com.button.boot.quartz.alone;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@SpringBootApplication
+@EnableScheduling
+public class SpringBootAQuartzAloneApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootAQuartzAloneApplication.class, args);
+ }
+}
diff --git a/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/MyAdaptableJobFactory.java b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/MyAdaptableJobFactory.java
new file mode 100644
index 0000000..24f24ba
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/MyAdaptableJobFactory.java
@@ -0,0 +1,19 @@
+package com.button.boot.quartz.alone.config;
+
+import org.quartz.spi.TriggerFiredBundle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.scheduling.quartz.AdaptableJobFactory;
+import org.springframework.stereotype.Component;
+
+@Component("myAdaptableJobFactory")
+public class MyAdaptableJobFactory extends AdaptableJobFactory {
+ @Autowired
+ private AutowireCapableBeanFactory autowireCapableBeanFactory;
+
+ protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
+ Object object = super.createJobInstance(bundle);
+ this.autowireCapableBeanFactory.autowireBean(object);
+ return object;
+ }
+}
diff --git a/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/QuartzAloneConfigure.java b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/QuartzAloneConfigure.java
new file mode 100644
index 0000000..2701aa9
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/config/QuartzAloneConfigure.java
@@ -0,0 +1,43 @@
+package com.button.boot.quartz.alone.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
+import org.springframework.scheduling.quartz.JobDetailFactoryBean;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+
+import com.button.boot.quartz.alone.timertask.QuartzTaskJob;
+
+@Configuration
+public class QuartzAloneConfigure {
+
+ @Value("${quartz.cronExpression}")
+ private String cronExpression;
+
+ // 创建Job对象
+ @Bean
+ public JobDetailFactoryBean jobDetailFactoryBean() {
+ JobDetailFactoryBean factory = new JobDetailFactoryBean();
+ factory.setJobClass(QuartzTaskJob.class);
+ return factory;
+ }
+
+ // 创建Trigger对象
+ @Bean
+ public CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) {
+ CronTriggerFactoryBean factory = new CronTriggerFactoryBean();
+ factory.setJobDetail(jobDetailFactoryBean.getObject());
+ factory.setCronExpression(cronExpression);
+ return factory;
+ }
+
+ // 创建Scheduler对象
+ @Bean
+ public SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean, MyAdaptableJobFactory myAdaptableFactory) {
+ SchedulerFactoryBean factory = new SchedulerFactoryBean();
+ factory.setTriggers(cronTriggerFactoryBean.getObject());
+ factory.setJobFactory(myAdaptableFactory);
+ return factory;
+ }
+}
diff --git a/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/timertask/QuartzTaskJob.java b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/timertask/QuartzTaskJob.java
new file mode 100644
index 0000000..6370594
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/src/main/java/com/button/boot/quartz/alone/timertask/QuartzTaskJob.java
@@ -0,0 +1,18 @@
+package com.button.boot.quartz.alone.timertask;
+
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class QuartzTaskJob implements Job {
+ private static final Logger logger = LoggerFactory.getLogger(QuartzTaskJob.class);
+
+ @Override
+ public void execute(JobExecutionContext context) throws JobExecutionException {
+ logger.info("--------------定时任务时间到了---------------------");
+ logger.info("--------------定时任务执行逻辑---------------------");
+ }
+
+}
diff --git a/Springboot-Quartz-StandAlone/src/main/resources/application.yml b/Springboot-Quartz-StandAlone/src/main/resources/application.yml
new file mode 100644
index 0000000..2b09e48
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/src/main/resources/application.yml
@@ -0,0 +1,8 @@
+server:
+ port: 8080
+
+logging:
+ file: logback.xml
+
+quartz:
+ cronExpression: 0 0/1 * * * ?
\ No newline at end of file
diff --git a/Springboot-Quartz-StandAlone/src/main/resources/logback.xml b/Springboot-Quartz-StandAlone/src/main/resources/logback.xml
new file mode 100644
index 0000000..4ddc2dd
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/src/main/resources/logback.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+ ${LOG_HOME}/springboot_button.log
+
+
+
+ ${LOG_HOME}/springboot_button.log.%d{yyyy-MM-dd}.%i.log
+
+
+
+ 100MB
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+
+
+
+
+
--
Gitee
From 7970ca10b387f07c4237fd32fb8dd7854ca15929 Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 20:15:10 +0800
Subject: [PATCH 3/9] =?UTF-8?q?Springboot=E6=95=B4=E5=90=88quartz=E5=AE=9E?=
=?UTF-8?q?=E7=8E=B0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1(=E9=9B=86?=
=?UTF-8?q?=E7=BE=A4=E7=89=88)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Springboot-Quartz-Cluster/README.MD | 3 +
Springboot-Quartz-Cluster/pom.xml | 93 ++++++++++
Springboot-Quartz-Cluster/quartz.sql | 174 ++++++++++++++++++
.../SpringBootQuartzClusterApplication.java | 11 ++
.../AutoWiredSpringBeanToJobFactory.java | 23 +++
.../config/QuartzClusterConfigure.java | 111 +++++++++++
.../cluster/timertask/QuartzTaskJob.java | 32 ++++
.../src/main/resources/application.yml | 24 +++
.../src/main/resources/logback.xml | 33 ++++
.../src/main/resources/quartz.properties | 24 +++
10 files changed, 528 insertions(+)
create mode 100644 Springboot-Quartz-Cluster/README.MD
create mode 100644 Springboot-Quartz-Cluster/pom.xml
create mode 100644 Springboot-Quartz-Cluster/quartz.sql
create mode 100644 Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/SpringBootQuartzClusterApplication.java
create mode 100644 Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/AutoWiredSpringBeanToJobFactory.java
create mode 100644 Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/QuartzClusterConfigure.java
create mode 100644 Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/timertask/QuartzTaskJob.java
create mode 100644 Springboot-Quartz-Cluster/src/main/resources/application.yml
create mode 100644 Springboot-Quartz-Cluster/src/main/resources/logback.xml
create mode 100644 Springboot-Quartz-Cluster/src/main/resources/quartz.properties
diff --git a/Springboot-Quartz-Cluster/README.MD b/Springboot-Quartz-Cluster/README.MD
new file mode 100644
index 0000000..d5dc8c0
--- /dev/null
+++ b/Springboot-Quartz-Cluster/README.MD
@@ -0,0 +1,3 @@
+# 本案例实现SpringBoot整合quartz实现定时任务(集群版)
+cron表达式配置在application.yml文件中
+注:运行前需要执行quartz.sql
\ No newline at end of file
diff --git a/Springboot-Quartz-Cluster/pom.xml b/Springboot-Quartz-Cluster/pom.xml
new file mode 100644
index 0000000..f1e20ed
--- /dev/null
+++ b/Springboot-Quartz-Cluster/pom.xml
@@ -0,0 +1,93 @@
+
+ 4.0.0
+ com.button
+ Springboot-Quartz-Cluster
+ 0.0.1-SNAPSHOT
+ jar
+
+ springboot集成quartz(集群)
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.5.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+
+ mysql
+ mysql-connector-java
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+ org.apache.tomcat
+ tomcat-jdbc
+
+
+
+
+ com.zaxxer
+ HikariCP-java7
+ 2.4.13
+
+
+
+ org.quartz-scheduler
+ quartz
+
+
+ org.quartz-scheduler
+ quartz-jobs
+
+
+ org.springframework
+ spring-context-support
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ -Dfile.encoding=UTF-8
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Springboot-Quartz-Cluster/quartz.sql b/Springboot-Quartz-Cluster/quartz.sql
new file mode 100644
index 0000000..aeaf542
--- /dev/null
+++ b/Springboot-Quartz-Cluster/quartz.sql
@@ -0,0 +1,174 @@
+CREATE DATABASE springboot-quartz;
+USE springboot-quartz;
+
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+CREATE TABLE QRTZ_JOB_DETAILS(
+SCHED_NAME VARCHAR(120) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+IS_DURABLE VARCHAR(1) NOT NULL,
+IS_NONCONCURRENT VARCHAR(1) NOT NULL,
+IS_UPDATE_DATA VARCHAR(1) NOT NULL,
+REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+NEXT_FIRE_TIME BIGINT(13) NULL,
+PREV_FIRE_TIME BIGINT(13) NULL,
+PRIORITY INTEGER NULL,
+TRIGGER_STATE VARCHAR(16) NOT NULL,
+TRIGGER_TYPE VARCHAR(8) NOT NULL,
+START_TIME BIGINT(13) NOT NULL,
+END_TIME BIGINT(13) NULL,
+CALENDAR_NAME VARCHAR(200) NULL,
+MISFIRE_INSTR SMALLINT(2) NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+REPEAT_COUNT BIGINT(7) NOT NULL,
+REPEAT_INTERVAL BIGINT(12) NOT NULL,
+TIMES_TRIGGERED BIGINT(10) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+CRON_EXPRESSION VARCHAR(120) NOT NULL,
+TIME_ZONE_ID VARCHAR(80),
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+BLOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CALENDARS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+CALENDAR_NAME VARCHAR(200) NOT NULL,
+CALENDAR BLOB NOT NULL,
+PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+ENTRY_ID VARCHAR(95) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+FIRED_TIME BIGINT(13) NOT NULL,
+SCHED_TIME BIGINT(13) NOT NULL,
+PRIORITY INTEGER NOT NULL,
+STATE VARCHAR(16) NOT NULL,
+JOB_NAME VARCHAR(200) NULL,
+JOB_GROUP VARCHAR(200) NULL,
+IS_NONCONCURRENT VARCHAR(1) NULL,
+REQUESTS_RECOVERY VARCHAR(1) NULL,
+PRIMARY KEY (SCHED_NAME,ENTRY_ID))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+SCHED_NAME VARCHAR(120) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
+CHECKIN_INTERVAL BIGINT(13) NOT NULL,
+PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_LOCKS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+LOCK_NAME VARCHAR(40) NOT NULL,
+PRIMARY KEY (SCHED_NAME,LOCK_NAME))
+ENGINE=InnoDB;
+
+CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);
+
+CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);
+CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
+
+CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);
+CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+
+commit;
diff --git a/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/SpringBootQuartzClusterApplication.java b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/SpringBootQuartzClusterApplication.java
new file mode 100644
index 0000000..c73d4b6
--- /dev/null
+++ b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/SpringBootQuartzClusterApplication.java
@@ -0,0 +1,11 @@
+package com.button.boot.quartz.cluster;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringBootQuartzClusterApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootQuartzClusterApplication.class, args);
+ }
+}
diff --git a/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/AutoWiredSpringBeanToJobFactory.java b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/AutoWiredSpringBeanToJobFactory.java
new file mode 100644
index 0000000..87da337
--- /dev/null
+++ b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/AutoWiredSpringBeanToJobFactory.java
@@ -0,0 +1,23 @@
+package com.button.boot.quartz.cluster.config;
+
+import org.quartz.spi.TriggerFiredBundle;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.scheduling.quartz.SpringBeanJobFactory;
+
+public class AutoWiredSpringBeanToJobFactory extends SpringBeanJobFactory implements ApplicationContextAware {
+ private transient AutowireCapableBeanFactory beanFactory;
+
+ @Override
+ public void setApplicationContext(final ApplicationContext context) {
+ beanFactory = context.getAutowireCapableBeanFactory();
+ }
+
+ @Override
+ protected Object createJobInstance(final TriggerFiredBundle bundle) throws Exception {
+ final Object job = super.createJobInstance(bundle);
+ beanFactory.autowireBean(job);
+ return job;
+ }
+}
diff --git a/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/QuartzClusterConfigure.java b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/QuartzClusterConfigure.java
new file mode 100644
index 0000000..909ec75
--- /dev/null
+++ b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/config/QuartzClusterConfigure.java
@@ -0,0 +1,111 @@
+package com.button.boot.quartz.cluster.config;
+
+import java.io.IOException;
+import java.util.Properties;
+
+import javax.sql.DataSource;
+
+import org.quartz.JobDetail;
+import org.quartz.Trigger;
+import org.quartz.spi.JobFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.factory.config.PropertiesFactoryBean;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
+import org.springframework.scheduling.quartz.JobDetailFactoryBean;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+
+import com.button.boot.quartz.cluster.timertask.QuartzTaskJob;
+
+@Configuration
+public class QuartzClusterConfigure {
+ // 配置文件路径
+ private static final String QUARTZ_CONFIG = "/quartz.properties";
+
+ @Autowired
+ @Qualifier(value = "dataSource")
+ private DataSource dataSource;
+
+ @Value("${quartz.cronExpression}")
+ private String cronExpression;
+
+ /**
+ * 从quartz.properties文件中读取Quartz配置属性
+ * @return
+ * @throws IOException
+ */
+ @Bean
+ public Properties quartzProperties() throws IOException {
+ PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
+ propertiesFactoryBean.setLocation(new ClassPathResource(QUARTZ_CONFIG));
+ propertiesFactoryBean.afterPropertiesSet();
+ return propertiesFactoryBean.getObject();
+ }
+
+ /**
+ * JobFactory与schedulerFactoryBean中的JobFactory相互依赖,注意bean的名称
+ * 在这里为JobFactory注入了Spring上下文
+ *
+ * @param applicationContext
+ * @return
+ */
+ @Bean
+ public JobFactory buttonJobFactory(ApplicationContext applicationContext) {
+ AutoWiredSpringBeanToJobFactory jobFactory = new AutoWiredSpringBeanToJobFactory();
+ jobFactory.setApplicationContext(applicationContext);
+ return jobFactory;
+ }
+
+ /**
+ *
+ * @param buttonJobFactory 为SchedulerFactory配置JobFactory
+ * @param cronJobTrigger
+ * @return
+ * @throws IOException
+ */
+ @Bean
+ public SchedulerFactoryBean schedulerFactoryBean(JobFactory buttonJobFactory, Trigger... cronJobTrigger) throws IOException {
+ SchedulerFactoryBean factory = new SchedulerFactoryBean();
+ factory.setJobFactory(buttonJobFactory);
+ factory.setOverwriteExistingJobs(true);
+ factory.setAutoStartup(true); // 设置自行启动
+ factory.setQuartzProperties(quartzProperties());
+ factory.setTriggers(cronJobTrigger);
+ factory.setDataSource(dataSource);// 使用应用的dataSource替换quartz的dataSource
+ return factory;
+ }
+
+ /**
+ * 配置JobDetailFactory
+ * JobDetailFactoryBean与CronTriggerFactoryBean相互依赖,注意bean的名称
+ *
+ * @return
+ */
+ @Bean
+ public JobDetailFactoryBean buttonobDetail() {
+ //集群模式下必须使用JobDetailFactoryBean,MethodInvokingJobDetailFactoryBean 类中的 methodInvoking 方法,是不支持序列化的
+ JobDetailFactoryBean jobDetail = new JobDetailFactoryBean();
+ jobDetail.setDurability(true);
+ jobDetail.setRequestsRecovery(true);
+ jobDetail.setJobClass(QuartzTaskJob.class);
+ return jobDetail;
+ }
+ /**
+ * 配置具体执行规则
+ * @param buttonobDetail
+ * @return
+ */
+ @Bean
+ public CronTriggerFactoryBean cronJobTrigger(JobDetail buttonobDetail) {
+ CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();
+ tigger.setJobDetail(buttonobDetail);
+ tigger.setStartDelay(2000); //延迟启动
+ tigger.setCronExpression(cronExpression); //从application.yml文件读取
+ return tigger;
+ }
+}
diff --git a/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/timertask/QuartzTaskJob.java b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/timertask/QuartzTaskJob.java
new file mode 100644
index 0000000..6f2ca6c
--- /dev/null
+++ b/Springboot-Quartz-Cluster/src/main/java/com/button/boot/quartz/cluster/timertask/QuartzTaskJob.java
@@ -0,0 +1,32 @@
+package com.button.boot.quartz.cluster.timertask;
+
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.PersistJobDataAfterExecution;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @DisallowConcurrentExecution : 此标记用在实现Job的类上面,意思是不允许并发执行.
+ * 注org.quartz.threadPool.threadCount的数量有多个的情况,@DisallowConcurrentExecution才生效
+ */
+@Component
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+public class QuartzTaskJob implements Job {
+ private static final Logger logger = LoggerFactory.getLogger(QuartzTaskJob.class);
+
+ /**
+ * 核心方法,Quartz Job真正的执行逻辑.
+ * @param JobExecutionContext中封装有Quartz运行所需要的所有信息
+ * @throws JobExecutionException execute()方法只允许抛出JobExecutionException异常
+ */
+ @Override
+ public void execute(JobExecutionContext context) throws JobExecutionException {
+ logger.info("--------------定时任务时间到了---------------------");
+ logger.info("--------------定时任务执行逻辑---------------------");
+ }
+}
diff --git a/Springboot-Quartz-Cluster/src/main/resources/application.yml b/Springboot-Quartz-Cluster/src/main/resources/application.yml
new file mode 100644
index 0000000..061131e
--- /dev/null
+++ b/Springboot-Quartz-Cluster/src/main/resources/application.yml
@@ -0,0 +1,24 @@
+server:
+ port: 8080
+
+logging:
+ file: logback.xml
+
+spring:
+ dataSource:
+ url: jdbc:mysql://localhost:3306/springboot-quartz?characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true&useSSL=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: 123456
+ driver-class-name: com.mysql.jdbc.Driver
+ type: com.zaxxer.hikari.HikariDataSource
+ hikari:
+ minimum-idle: 5
+ maximum-pool-size: 15
+ idle-timeout: 30000
+ pool-name: DatebookHikariCP
+ max-lifetime: 1800000
+ connection-timeout: 30000
+ connection-test-query: 'SELECT 1'
+
+quartz:
+ cronExpression: 0 0/1 * * * ?
\ No newline at end of file
diff --git a/Springboot-Quartz-Cluster/src/main/resources/logback.xml b/Springboot-Quartz-Cluster/src/main/resources/logback.xml
new file mode 100644
index 0000000..e2c2483
--- /dev/null
+++ b/Springboot-Quartz-Cluster/src/main/resources/logback.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+ ${LOG_HOME}/springboot_button.log
+
+
+
+ ${LOG_HOME}/springboot_button.log.%d{yyyy-MM-dd}.%i.log
+
+
+
+ 100MB
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+
+
+
+
+
diff --git a/Springboot-Quartz-Cluster/src/main/resources/quartz.properties b/Springboot-Quartz-Cluster/src/main/resources/quartz.properties
new file mode 100644
index 0000000..e060dff
--- /dev/null
+++ b/Springboot-Quartz-Cluster/src/main/resources/quartz.properties
@@ -0,0 +1,24 @@
+#quartz集群配置
+#调度标识名 集群中每一个实例都必须使用相同的名称
+org.quartz.scheduler.instanceName=DefaultQuartzScheduler
+#ID设置为自动获取 每一个必须不同
+org.quartz.scheduler.instanceId=AUTO
+org.quartz.scheduler.makeSchedulerThreadDaemon=true
+#线程池的实现类(一般使用SimpleThreadPool即可满足需求)
+org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
+#指定在线程池里面创建的线程是否是守护线程
+org.quartz.threadPool.makeThreadsDaemons=true
+#指定线程数,至少为1(无默认值)
+org.quartz.threadPool.threadCount:20
+#设置线程的优先级(最大为java.lang.Thread.MAX_PRIORITY 10,最小为Thread.MIN_PRIORITY 1,默认为5)
+org.quartz.threadPool.threadPriority:5
+#数据保存方式为数据库持久化
+org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
+#数据库代理类,一般org.quartz.impl.jdbcjobstore.StdJDBCDelegate可以满足大部分数据库
+org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+#表的前缀,默认QRTZ_
+org.quartz.jobStore.tablePrefix=QRTZ_
+#是否加入集群
+org.quartz.jobStore.isClustered=true
+# 信息保存时间 默认值60秒
+org.quartz.jobStore.misfireThreshold=25000
\ No newline at end of file
--
Gitee
From bbd24639b24a1bd8a965d33e20a3b32ab50aa8c6 Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 20:18:19 +0800
Subject: [PATCH 4/9] =?UTF-8?q?Springboot=E6=95=B4=E5=90=88redis(lettuce)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
SpringBoot-Redis-Lettuce/README.MD | 6 ++
SpringBoot-Redis-Lettuce/pom.xml | 70 +++++++++++++++++++
.../SpringBootRedisLettuceApplication.java | 11 +++
.../lettuce/config/RedisLettuceConfigure.java | 29 ++++++++
.../lettuce/controller/UserController.java | 37 ++++++++++
.../boot/redis/lettuce/model/UserModel.java | 27 +++++++
.../redis/lettuce/service/RedisManager.java | 10 +++
.../service/impl/RedisManagerImpl.java | 37 ++++++++++
.../src/main/resources/application.yml | 19 +++++
.../src/main/resources/logback.xml | 34 +++++++++
10 files changed, 280 insertions(+)
create mode 100644 SpringBoot-Redis-Lettuce/README.MD
create mode 100644 SpringBoot-Redis-Lettuce/pom.xml
create mode 100644 SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/SpringBootRedisLettuceApplication.java
create mode 100644 SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/config/RedisLettuceConfigure.java
create mode 100644 SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/controller/UserController.java
create mode 100644 SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/model/UserModel.java
create mode 100644 SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/RedisManager.java
create mode 100644 SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/impl/RedisManagerImpl.java
create mode 100644 SpringBoot-Redis-Lettuce/src/main/resources/application.yml
create mode 100644 SpringBoot-Redis-Lettuce/src/main/resources/logback.xml
diff --git a/SpringBoot-Redis-Lettuce/README.MD b/SpringBoot-Redis-Lettuce/README.MD
new file mode 100644
index 0000000..1e9fb2f
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/README.MD
@@ -0,0 +1,6 @@
+# 本案例实现SpringBoot整合redis(Lettuce)
+接口访问地址如下:
+http://localhost:8080/getValue
+http://localhost:8080/getUser
+http://localhost:8080/getUserValue?key=123(测试缓存效果)
+Lettuce和Jedis的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接。Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。
\ No newline at end of file
diff --git a/SpringBoot-Redis-Lettuce/pom.xml b/SpringBoot-Redis-Lettuce/pom.xml
new file mode 100644
index 0000000..fe75e63
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/pom.xml
@@ -0,0 +1,70 @@
+
+ 4.0.0
+ com.button
+ SpringBoot-Redis-Lettuce
+ 0.0.1-SNAPSHOT
+ jar
+
+ springboot集成redis(Lettuce)
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.5.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ org.apache.commons
+ commons-pool2
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ -Dfile.encoding=UTF-8
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/SpringBootRedisLettuceApplication.java b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/SpringBootRedisLettuceApplication.java
new file mode 100644
index 0000000..a17d4e5
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/SpringBootRedisLettuceApplication.java
@@ -0,0 +1,11 @@
+package com.button.boot.redis.lettuce;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringBootRedisLettuceApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootRedisLettuceApplication.class, args);
+ }
+}
diff --git a/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/config/RedisLettuceConfigure.java b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/config/RedisLettuceConfigure.java
new file mode 100644
index 0000000..c7c5400
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/config/RedisLettuceConfigure.java
@@ -0,0 +1,29 @@
+package com.button.boot.redis.lettuce.config;
+
+import java.lang.reflect.Method;
+
+import org.springframework.cache.annotation.CachingConfigurerSupport;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.cache.interceptor.KeyGenerator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@EnableCaching
+public class RedisLettuceConfigure extends CachingConfigurerSupport {
+ @Bean
+ public KeyGenerator redisKeyGenerator() {
+ return new KeyGenerator() {
+ @Override
+ public Object generate(Object target, Method method, Object... params) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(target.getClass().getName());
+ sb.append(method.getName());
+ for (Object obj : params) {
+ sb.append(obj.toString());
+ }
+ return sb.toString();
+ }
+ };
+ }
+}
diff --git a/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/controller/UserController.java b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/controller/UserController.java
new file mode 100644
index 0000000..d71a032
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/controller/UserController.java
@@ -0,0 +1,37 @@
+package com.button.boot.redis.lettuce.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.button.boot.redis.lettuce.model.UserModel;
+import com.button.boot.redis.lettuce.service.RedisManager;
+
+@RestController
+public class UserController {
+
+ @Autowired
+ private RedisManager redisManager;
+
+ @GetMapping("/getValue")
+ public String getValue() {
+ redisManager.setValue("123", "test");
+ return redisManager.getValue("123");
+ }
+
+ @GetMapping("/getUser")
+ public UserModel getUser() {
+ UserModel user = new UserModel();
+ user.setName("张三");
+ user.setAge(24);
+ redisManager.leftPush("user", user);
+ return redisManager.leftPop("user");
+ }
+
+ @GetMapping("/getUserValue")
+ @Cacheable(value="userKey") //将结果缓存,下一次重复请求时会直接返回结果
+ public String getUserValue(String key) {
+ return redisManager.getValue(key);
+ }
+}
diff --git a/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/model/UserModel.java b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/model/UserModel.java
new file mode 100644
index 0000000..bb831ab
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/model/UserModel.java
@@ -0,0 +1,27 @@
+package com.button.boot.redis.lettuce.model;
+
+import java.io.Serializable;
+
+public class UserModel implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+ private Integer age;
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public Integer getAge() {
+ return age;
+ }
+ public void setAge(Integer age) {
+ this.age = age;
+ }
+ @Override
+ public String toString() {
+ return "UserModel [name=" + name + ", age=" + age + "]";
+ }
+}
diff --git a/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/RedisManager.java b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/RedisManager.java
new file mode 100644
index 0000000..601477b
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/RedisManager.java
@@ -0,0 +1,10 @@
+package com.button.boot.redis.lettuce.service;
+
+import com.button.boot.redis.lettuce.model.UserModel;
+
+public interface RedisManager {
+ public void setValue(String key, String value);
+ public String getValue(String key);
+ public void leftPush(String key, UserModel value);
+ public UserModel leftPop(String key);
+}
diff --git a/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/impl/RedisManagerImpl.java b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/impl/RedisManagerImpl.java
new file mode 100644
index 0000000..4b75f4c
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/java/com/button/boot/redis/lettuce/service/impl/RedisManagerImpl.java
@@ -0,0 +1,37 @@
+package com.button.boot.redis.lettuce.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import com.button.boot.redis.lettuce.model.UserModel;
+import com.button.boot.redis.lettuce.service.RedisManager;
+
+@Service
+public class RedisManagerImpl implements RedisManager {
+ @Autowired
+ private StringRedisTemplate stringRedisTemplate;
+ @Resource //此处使用@Autowired会注入异常(https://blog.csdn.net/zhaoheng314/article/details/81564166)
+ private RedisTemplate redisTemplate;
+
+ @Override
+ public void setValue(String key, String value) {
+
+ stringRedisTemplate.opsForValue().set(key, value);
+ }
+ @Override
+ public String getValue(String key) {
+ return stringRedisTemplate.opsForValue().get(key);
+ }
+ @Override
+ public void leftPush(String key, UserModel value) {
+ redisTemplate.opsForList().leftPush(key, value);
+ }
+ @Override
+ public UserModel leftPop(String key) {
+ return redisTemplate.opsForList().leftPop(key);
+ }
+}
diff --git a/SpringBoot-Redis-Lettuce/src/main/resources/application.yml b/SpringBoot-Redis-Lettuce/src/main/resources/application.yml
new file mode 100644
index 0000000..65e7a0a
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/resources/application.yml
@@ -0,0 +1,19 @@
+server:
+ port: 8080
+
+logging:
+ file: logback.xml
+
+spring:
+ redis:
+ database: 0 # Redis数据库索引(默认为0)
+ host: ***.***.***.*** # Redis服务器地址
+ port: 6379 # Redis服务器连接端口
+ password: ********** # Redis服务器连接密码(默认为空)
+ timeout: 10000 # 连接超时时间(毫秒)
+ lettuce:
+ pool:
+ max-active: 8 # 连接池最大连接数(使用负值表示没有限制) 默认 8
+ max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
+ max-idle: 8 # 连接池中的最大空闲连接 默认 8
+ min-idle: 0 # 连接池中的最小空闲连接 默认 0
\ No newline at end of file
diff --git a/SpringBoot-Redis-Lettuce/src/main/resources/logback.xml b/SpringBoot-Redis-Lettuce/src/main/resources/logback.xml
new file mode 100644
index 0000000..4ddc2dd
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/src/main/resources/logback.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+ ${LOG_HOME}/springboot_button.log
+
+
+
+ ${LOG_HOME}/springboot_button.log.%d{yyyy-MM-dd}.%i.log
+
+
+
+ 100MB
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+
+
+
+
+
--
Gitee
From 8807dee0589203371db1ca5806669d636e41501f Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 20:21:21 +0800
Subject: [PATCH 5/9] =?UTF-8?q?Springboot=E6=95=B4=E5=90=88redis(jedis)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
SpringBoot-Redis-Jedis/README.MD | 8 ++
SpringBoot-Redis-Jedis/logback.xml | 100 ++++++++++++++++++
SpringBoot-Redis-Jedis/pom.xml | 67 ++++++++++++
.../SpringBootRedisJedisApplication.java | 11 ++
.../redis/jedis/config/JedisConfigure.java | 65 ++++++++++++
.../jedis/controller/RedisController.java | 24 +++++
.../redis/jedis/service/RedisManager.java | 8 ++
.../jedis/service/impl/RedisManagerImpl.java | 26 +++++
.../src/main/resources/application.yml | 11 ++
9 files changed, 320 insertions(+)
create mode 100644 SpringBoot-Redis-Jedis/README.MD
create mode 100644 SpringBoot-Redis-Jedis/logback.xml
create mode 100644 SpringBoot-Redis-Jedis/pom.xml
create mode 100644 SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/SpringBootRedisJedisApplication.java
create mode 100644 SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/config/JedisConfigure.java
create mode 100644 SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/controller/RedisController.java
create mode 100644 SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/RedisManager.java
create mode 100644 SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/impl/RedisManagerImpl.java
create mode 100644 SpringBoot-Redis-Jedis/src/main/resources/application.yml
diff --git a/SpringBoot-Redis-Jedis/README.MD b/SpringBoot-Redis-Jedis/README.MD
new file mode 100644
index 0000000..6365e7c
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/README.MD
@@ -0,0 +1,8 @@
+# 本案例实现SpringBoot整合redis(Jedis)
+接口访问地址如下:
+http://localhost:8080/getValue?key=123
+http://localhost:8080/setValue?key=123&value=5555
+
+Lettuce和Jedis的都是连接Redis Server的客户端程序。
+Jedis在实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接。
+Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。
\ No newline at end of file
diff --git a/SpringBoot-Redis-Jedis/logback.xml b/SpringBoot-Redis-Jedis/logback.xml
new file mode 100644
index 0000000..c1f2ee0
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/logback.xml
@@ -0,0 +1,100 @@
+2019-09-23 16:39:38.784 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Starting SpringBootRedisJedisApplication on ZhangHang-PC with PID 5456 (F:\chexian-git\work\SpringBoot-Redis-Jedis\target\classes started by Hanghang in F:\chexian-git\work\SpringBoot-Redis-Jedis)
+2019-09-23 16:39:38.786 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : No active profile set, falling back to default profiles: default
+2019-09-23 16:39:38.831 INFO 5456 --- [restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@28001df8: startup date [Mon Sep 23 16:39:38 CST 2019]; root of context hierarchy
+2019-09-23 16:39:39.839 INFO 5456 --- [restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
+2019-09-23 16:39:40.894 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:39:41.066 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
+2019-09-23 16:39:41.087 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:39:41.103 INFO 5456 --- [restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
+2019-09-23 16:39:41.103 INFO 5456 --- [restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.34
+2019-09-23 16:39:41.114 ERROR 5456 --- [localhost-startStop-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:39:41.245 INFO 5456 --- [localhost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
+2019-09-23 16:39:41.246 INFO 5456 --- [localhost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2415 ms
+2019-09-23 16:39:41.331 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
+2019-09-23 16:39:41.337 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
+2019-09-23 16:39:41.338 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
+2019-09-23 16:39:41.338 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
+2019-09-23 16:39:41.340 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
+2019-09-23 16:39:41.687 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:39:42.000 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@28001df8: startup date [Mon Sep 23 16:39:38 CST 2019]; root of context hierarchy
+2019-09-23 16:39:42.084 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/getValue],methods=[GET]}" onto public java.lang.String com.button.boot.redis.jedis.controller.RedisController.getValue()
+2019-09-23 16:39:42.089 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
+2019-09-23 16:39:42.089 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
+2019-09-23 16:39:42.116 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:39:42.117 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:39:42.642 INFO 5456 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
+2019-09-23 16:39:42.688 INFO 5456 --- [restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
+2019-09-23 16:39:42.738 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
+2019-09-23 16:39:42.745 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Started SpringBootRedisJedisApplication in 4.46 seconds (JVM running for 4.979)
+2019-09-23 16:40:10.774 ERROR 5456 --- [http-nio-8080-exec-2] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:40:10.805 INFO 5456 --- [http-nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-09-23 16:40:10.805 INFO 5456 --- [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
+2019-09-23 16:40:10.839 INFO 5456 --- [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 34 ms
+2019-09-23 16:40:31.699 INFO 5456 --- [Thread-6] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@28001df8: startup date [Mon Sep 23 16:39:38 CST 2019]; root of context hierarchy
+2019-09-23 16:40:31.707 INFO 5456 --- [Thread-6] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
+2019-09-23 16:40:32.096 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Starting SpringBootRedisJedisApplication on ZhangHang-PC with PID 5456 (F:\chexian-git\work\SpringBoot-Redis-Jedis\target\classes started by Hanghang in F:\chexian-git\work\SpringBoot-Redis-Jedis)
+2019-09-23 16:40:32.097 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : No active profile set, falling back to default profiles: default
+2019-09-23 16:40:32.101 INFO 5456 --- [restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4597c242: startup date [Mon Sep 23 16:40:32 CST 2019]; root of context hierarchy
+2019-09-23 16:40:33.024 INFO 5456 --- [restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
+2019-09-23 16:40:33.371 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:40:33.392 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
+2019-09-23 16:40:33.393 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:40:33.393 INFO 5456 --- [restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
+2019-09-23 16:40:33.394 INFO 5456 --- [restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.34
+2019-09-23 16:40:33.531 ERROR 5456 --- [localhost-startStop-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:40:33.543 INFO 5456 --- [localhost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
+2019-09-23 16:40:33.543 INFO 5456 --- [localhost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1442 ms
+2019-09-23 16:40:33.552 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
+2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
+2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
+2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
+2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
+2019-09-23 16:40:33.613 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:40:33.703 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4597c242: startup date [Mon Sep 23 16:40:32 CST 2019]; root of context hierarchy
+2019-09-23 16:40:33.707 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/getValue],methods=[GET]}" onto public java.lang.String com.button.boot.redis.jedis.controller.RedisController.getValue(java.lang.String)
+2019-09-23 16:40:33.709 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
+2019-09-23 16:40:33.709 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
+2019-09-23 16:40:33.713 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:40:33.713 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:40:33.793 INFO 5456 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
+2019-09-23 16:40:33.805 INFO 5456 --- [restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
+2019-09-23 16:40:33.858 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
+2019-09-23 16:40:33.859 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Started SpringBootRedisJedisApplication in 1.816 seconds (JVM running for 56.093)
+2019-09-23 16:40:33.861 INFO 5456 --- [restartedMain] .ConditionEvaluationDeltaLoggingListener : Condition evaluation unchanged
+2019-09-23 16:41:21.110 INFO 5456 --- [Thread-10] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4597c242: startup date [Mon Sep 23 16:40:32 CST 2019]; root of context hierarchy
+2019-09-23 16:41:21.140 INFO 5456 --- [Thread-10] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
+2019-09-23 16:41:21.456 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Starting SpringBootRedisJedisApplication on ZhangHang-PC with PID 5456 (F:\chexian-git\work\SpringBoot-Redis-Jedis\target\classes started by Hanghang in F:\chexian-git\work\SpringBoot-Redis-Jedis)
+2019-09-23 16:41:21.456 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : No active profile set, falling back to default profiles: default
+2019-09-23 16:41:21.458 INFO 5456 --- [restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7c7b7a22: startup date [Mon Sep 23 16:41:21 CST 2019]; root of context hierarchy
+2019-09-23 16:41:21.736 INFO 5456 --- [restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
+2019-09-23 16:41:21.859 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:41:22.341 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
+2019-09-23 16:41:22.341 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:41:22.342 INFO 5456 --- [restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
+2019-09-23 16:41:22.342 INFO 5456 --- [restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.34
+2019-09-23 16:41:22.390 ERROR 5456 --- [localhost-startStop-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:41:22.417 INFO 5456 --- [localhost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
+2019-09-23 16:41:22.418 INFO 5456 --- [localhost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 960 ms
+2019-09-23 16:41:22.434 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
+2019-09-23 16:41:22.435 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
+2019-09-23 16:41:22.435 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
+2019-09-23 16:41:22.435 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
+2019-09-23 16:41:22.436 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
+2019-09-23 16:41:22.922 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:41:22.952 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7c7b7a22: startup date [Mon Sep 23 16:41:21 CST 2019]; root of context hierarchy
+2019-09-23 16:41:22.958 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/getValue],methods=[GET]}" onto public java.lang.String com.button.boot.redis.jedis.controller.RedisController.getValue(java.lang.String)
+2019-09-23 16:41:22.958 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/setValue],methods=[GET]}" onto public void com.button.boot.redis.jedis.controller.RedisController.getValue(java.lang.String,java.lang.String)
+2019-09-23 16:41:22.960 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
+2019-09-23 16:41:22.960 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
+2019-09-23 16:41:22.965 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:41:22.965 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
+2019-09-23 16:41:23.046 INFO 5456 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
+2019-09-23 16:41:23.056 INFO 5456 --- [restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
+2019-09-23 16:41:23.136 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
+2019-09-23 16:41:23.137 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Started SpringBootRedisJedisApplication in 1.719 seconds (JVM running for 105.37)
+2019-09-23 16:41:23.139 INFO 5456 --- [restartedMain] .ConditionEvaluationDeltaLoggingListener : Condition evaluation unchanged
+2019-09-23 16:41:31.538 ERROR 5456 --- [http-nio-8080-exec-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
+2019-09-23 16:41:31.540 INFO 5456 --- [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-09-23 16:41:31.540 INFO 5456 --- [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
+2019-09-23 16:41:31.542 INFO 5456 --- [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 2 ms
+2019-09-23 16:42:01.171 ERROR 5456 --- [http-nio-8080-exec-9] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
diff --git a/SpringBoot-Redis-Jedis/pom.xml b/SpringBoot-Redis-Jedis/pom.xml
new file mode 100644
index 0000000..204548b
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/pom.xml
@@ -0,0 +1,67 @@
+
+ 4.0.0
+ com.button
+ SpringBoot-Redis-Jedis
+ 0.0.1-SNAPSHOT
+ jar
+
+ springboot集成redis(jedis)
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.5.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ redis.clients
+ jedis
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+ true
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ -Dfile.encoding=UTF-8
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/SpringBootRedisJedisApplication.java b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/SpringBootRedisJedisApplication.java
new file mode 100644
index 0000000..6667746
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/SpringBootRedisJedisApplication.java
@@ -0,0 +1,11 @@
+package com.button.boot.redis.jedis;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringBootRedisJedisApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootRedisJedisApplication.class, args);
+ }
+}
diff --git a/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/config/JedisConfigure.java b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/config/JedisConfigure.java
new file mode 100644
index 0000000..7212368
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/config/JedisConfigure.java
@@ -0,0 +1,65 @@
+package com.button.boot.redis.jedis.config;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisPassword;
+import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
+import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
+import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
+import org.springframework.data.redis.core.StringRedisTemplate;
+
+import redis.clients.jedis.JedisPoolConfig;
+
+@Configuration
+public class JedisConfigure {
+ @Value("${spring.redis.host}")
+ private String host;
+ @Value("${spring.redis.port}")
+ private Integer port;
+ @Value("${spring.redis.password}")
+ private String password;
+
+ @Bean
+ public JedisPoolConfig getJedisPoolConfig(){
+ JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
+ //最大空闲连接数, 默认8个
+ jedisPoolConfig.setMaxIdle(4);
+ //最大连接数, 默认8个
+ jedisPoolConfig.setMaxTotal(8);
+ //最小空闲连接数, 默认0
+ jedisPoolConfig.setMinIdle(1);
+ //获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
+ jedisPoolConfig.setMaxWaitMillis(-1);
+ //逐出连接的最小空闲时间 默认1800000毫秒(30分钟)
+ jedisPoolConfig.setMinEvictableIdleTimeMillis(300000);
+ //每次逐出检查时 逐出的最大数目 如果为负数就是 : 1/abs(n), 默认3
+ jedisPoolConfig.setNumTestsPerEvictionRun(3);
+ //一个连接在池中最小生存的时间
+ jedisPoolConfig.setTimeBetweenEvictionRunsMillis(60000);
+ //连接超时时是否阻塞,false时报异常,ture阻塞直到超时, 默认true
+ jedisPoolConfig.setBlockWhenExhausted(true);
+ return jedisPoolConfig;
+ }
+
+ @Bean
+ public JedisConnectionFactory redisConnectionFactory(JedisPoolConfig jedisPoolConfig) {
+ RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
+ redisStandaloneConfiguration.setHostName(host);
+ redisStandaloneConfiguration.setPort(port);
+ redisStandaloneConfiguration.setPassword(RedisPassword.of(password));
+ //jedisConnectionFactoryJ对于Standalone模式的没有(RedisStandaloneConfiguration,JedisPoolConfig)的构造函数,对此我们用JedisClientConfiguration接口的builder方法实例化一个构造器
+ JedisClientConfiguration.JedisPoolingClientConfigurationBuilder jpcf = (JedisClientConfiguration.JedisPoolingClientConfigurationBuilder) JedisClientConfiguration.builder();
+ //修改我们的连接池配置
+ jpcf.poolConfig(jedisPoolConfig);
+ //通过构造器来构造jedis客户端配置
+ JedisClientConfiguration jedisClientConfiguration = jpcf.build();
+ return new JedisConnectionFactory(redisStandaloneConfiguration, jedisClientConfiguration);
+ }
+
+ @Bean(name="stringRedisTemplate")
+ public StringRedisTemplate getRedisTemplate(@Qualifier("redisConnectionFactory") JedisConnectionFactory factory){
+ return new StringRedisTemplate(factory);
+ }
+}
diff --git a/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/controller/RedisController.java b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/controller/RedisController.java
new file mode 100644
index 0000000..6041092
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/controller/RedisController.java
@@ -0,0 +1,24 @@
+package com.button.boot.redis.jedis.controller;
+
+import java.util.concurrent.TimeUnit;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.button.boot.redis.jedis.service.RedisManager;
+
+@RestController
+public class RedisController {
+ @Autowired
+ private RedisManager redisManager;
+
+ @GetMapping("/getValue")
+ public String getValue(String key) {
+ return redisManager.valueGet(key);
+ }
+ @GetMapping("/setValue")
+ public void getValue(String key, String value) {
+ redisManager.valueSet(key, value, 10, TimeUnit.MINUTES);
+ }
+}
diff --git a/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/RedisManager.java b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/RedisManager.java
new file mode 100644
index 0000000..825fad9
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/RedisManager.java
@@ -0,0 +1,8 @@
+package com.button.boot.redis.jedis.service;
+
+import java.util.concurrent.TimeUnit;
+
+public interface RedisManager {
+ public void valueSet(String key,String value,Integer timeout,TimeUnit timeUnit);
+ public String valueGet(String key);
+}
diff --git a/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/impl/RedisManagerImpl.java b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/impl/RedisManagerImpl.java
new file mode 100644
index 0000000..05eb4bc
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/src/main/java/com/button/boot/redis/jedis/service/impl/RedisManagerImpl.java
@@ -0,0 +1,26 @@
+package com.button.boot.redis.jedis.service.impl;
+
+import java.util.concurrent.TimeUnit;
+
+import javax.annotation.Resource;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import com.button.boot.redis.jedis.service.RedisManager;
+
+@Service
+public class RedisManagerImpl implements RedisManager {
+ @Resource(name="stringRedisTemplate")
+ private StringRedisTemplate strRedisTemplate;
+
+ @Override
+ public String valueGet(String key){
+ return strRedisTemplate.opsForValue().get(key);
+ }
+
+ @Override
+ public void valueSet(String key, String value, Integer timeout, TimeUnit timeUnit) {
+ strRedisTemplate.opsForValue().set(key, value, timeout, timeUnit);
+ }
+}
diff --git a/SpringBoot-Redis-Jedis/src/main/resources/application.yml b/SpringBoot-Redis-Jedis/src/main/resources/application.yml
new file mode 100644
index 0000000..f86f248
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/src/main/resources/application.yml
@@ -0,0 +1,11 @@
+server:
+ port: 8080
+
+logging:
+ file: logback.xml
+
+spring:
+ redis:
+ host: ***.***.***.*** # Redis服务器地址
+ port: 6379 # Redis服务器连接端口
+ password: ********** # Redis服务器连接密码(默认为空)
--
Gitee
From 62e9d1cb2b21b57af3711536de2b61917c693ab4 Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 20:24:00 +0800
Subject: [PATCH 6/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?=
=?UTF-8?q?=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
SpringBoot-Redis-Jedis/logback.xml | 100 ------------------
.../src/main/resources/logback.xml | 34 ++++++
2 files changed, 34 insertions(+), 100 deletions(-)
delete mode 100644 SpringBoot-Redis-Jedis/logback.xml
create mode 100644 SpringBoot-Redis-Jedis/src/main/resources/logback.xml
diff --git a/SpringBoot-Redis-Jedis/logback.xml b/SpringBoot-Redis-Jedis/logback.xml
deleted file mode 100644
index c1f2ee0..0000000
--- a/SpringBoot-Redis-Jedis/logback.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-2019-09-23 16:39:38.784 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Starting SpringBootRedisJedisApplication on ZhangHang-PC with PID 5456 (F:\chexian-git\work\SpringBoot-Redis-Jedis\target\classes started by Hanghang in F:\chexian-git\work\SpringBoot-Redis-Jedis)
-2019-09-23 16:39:38.786 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : No active profile set, falling back to default profiles: default
-2019-09-23 16:39:38.831 INFO 5456 --- [restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@28001df8: startup date [Mon Sep 23 16:39:38 CST 2019]; root of context hierarchy
-2019-09-23 16:39:39.839 INFO 5456 --- [restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
-2019-09-23 16:39:40.894 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:39:41.066 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
-2019-09-23 16:39:41.087 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:39:41.103 INFO 5456 --- [restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
-2019-09-23 16:39:41.103 INFO 5456 --- [restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.34
-2019-09-23 16:39:41.114 ERROR 5456 --- [localhost-startStop-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:39:41.245 INFO 5456 --- [localhost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
-2019-09-23 16:39:41.246 INFO 5456 --- [localhost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2415 ms
-2019-09-23 16:39:41.331 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
-2019-09-23 16:39:41.337 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
-2019-09-23 16:39:41.338 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
-2019-09-23 16:39:41.338 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
-2019-09-23 16:39:41.340 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
-2019-09-23 16:39:41.687 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:39:42.000 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@28001df8: startup date [Mon Sep 23 16:39:38 CST 2019]; root of context hierarchy
-2019-09-23 16:39:42.084 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/getValue],methods=[GET]}" onto public java.lang.String com.button.boot.redis.jedis.controller.RedisController.getValue()
-2019-09-23 16:39:42.089 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
-2019-09-23 16:39:42.089 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
-2019-09-23 16:39:42.116 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:39:42.117 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:39:42.642 INFO 5456 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
-2019-09-23 16:39:42.688 INFO 5456 --- [restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
-2019-09-23 16:39:42.738 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
-2019-09-23 16:39:42.745 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Started SpringBootRedisJedisApplication in 4.46 seconds (JVM running for 4.979)
-2019-09-23 16:40:10.774 ERROR 5456 --- [http-nio-8080-exec-2] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:40:10.805 INFO 5456 --- [http-nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
-2019-09-23 16:40:10.805 INFO 5456 --- [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
-2019-09-23 16:40:10.839 INFO 5456 --- [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 34 ms
-2019-09-23 16:40:31.699 INFO 5456 --- [Thread-6] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@28001df8: startup date [Mon Sep 23 16:39:38 CST 2019]; root of context hierarchy
-2019-09-23 16:40:31.707 INFO 5456 --- [Thread-6] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
-2019-09-23 16:40:32.096 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Starting SpringBootRedisJedisApplication on ZhangHang-PC with PID 5456 (F:\chexian-git\work\SpringBoot-Redis-Jedis\target\classes started by Hanghang in F:\chexian-git\work\SpringBoot-Redis-Jedis)
-2019-09-23 16:40:32.097 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : No active profile set, falling back to default profiles: default
-2019-09-23 16:40:32.101 INFO 5456 --- [restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4597c242: startup date [Mon Sep 23 16:40:32 CST 2019]; root of context hierarchy
-2019-09-23 16:40:33.024 INFO 5456 --- [restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
-2019-09-23 16:40:33.371 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:40:33.392 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
-2019-09-23 16:40:33.393 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:40:33.393 INFO 5456 --- [restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
-2019-09-23 16:40:33.394 INFO 5456 --- [restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.34
-2019-09-23 16:40:33.531 ERROR 5456 --- [localhost-startStop-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:40:33.543 INFO 5456 --- [localhost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
-2019-09-23 16:40:33.543 INFO 5456 --- [localhost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1442 ms
-2019-09-23 16:40:33.552 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
-2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
-2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
-2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
-2019-09-23 16:40:33.553 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
-2019-09-23 16:40:33.613 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:40:33.703 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4597c242: startup date [Mon Sep 23 16:40:32 CST 2019]; root of context hierarchy
-2019-09-23 16:40:33.707 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/getValue],methods=[GET]}" onto public java.lang.String com.button.boot.redis.jedis.controller.RedisController.getValue(java.lang.String)
-2019-09-23 16:40:33.709 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
-2019-09-23 16:40:33.709 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
-2019-09-23 16:40:33.713 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:40:33.713 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:40:33.793 INFO 5456 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
-2019-09-23 16:40:33.805 INFO 5456 --- [restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
-2019-09-23 16:40:33.858 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
-2019-09-23 16:40:33.859 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Started SpringBootRedisJedisApplication in 1.816 seconds (JVM running for 56.093)
-2019-09-23 16:40:33.861 INFO 5456 --- [restartedMain] .ConditionEvaluationDeltaLoggingListener : Condition evaluation unchanged
-2019-09-23 16:41:21.110 INFO 5456 --- [Thread-10] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4597c242: startup date [Mon Sep 23 16:40:32 CST 2019]; root of context hierarchy
-2019-09-23 16:41:21.140 INFO 5456 --- [Thread-10] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
-2019-09-23 16:41:21.456 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Starting SpringBootRedisJedisApplication on ZhangHang-PC with PID 5456 (F:\chexian-git\work\SpringBoot-Redis-Jedis\target\classes started by Hanghang in F:\chexian-git\work\SpringBoot-Redis-Jedis)
-2019-09-23 16:41:21.456 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : No active profile set, falling back to default profiles: default
-2019-09-23 16:41:21.458 INFO 5456 --- [restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7c7b7a22: startup date [Mon Sep 23 16:41:21 CST 2019]; root of context hierarchy
-2019-09-23 16:41:21.736 INFO 5456 --- [restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
-2019-09-23 16:41:21.859 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:41:22.341 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
-2019-09-23 16:41:22.341 ERROR 5456 --- [restartedMain] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:41:22.342 INFO 5456 --- [restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
-2019-09-23 16:41:22.342 INFO 5456 --- [restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.34
-2019-09-23 16:41:22.390 ERROR 5456 --- [localhost-startStop-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:41:22.417 INFO 5456 --- [localhost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
-2019-09-23 16:41:22.418 INFO 5456 --- [localhost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 960 ms
-2019-09-23 16:41:22.434 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
-2019-09-23 16:41:22.435 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
-2019-09-23 16:41:22.435 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
-2019-09-23 16:41:22.435 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
-2019-09-23 16:41:22.436 INFO 5456 --- [localhost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
-2019-09-23 16:41:22.922 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:41:22.952 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7c7b7a22: startup date [Mon Sep 23 16:41:21 CST 2019]; root of context hierarchy
-2019-09-23 16:41:22.958 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/getValue],methods=[GET]}" onto public java.lang.String com.button.boot.redis.jedis.controller.RedisController.getValue(java.lang.String)
-2019-09-23 16:41:22.958 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/setValue],methods=[GET]}" onto public void com.button.boot.redis.jedis.controller.RedisController.getValue(java.lang.String,java.lang.String)
-2019-09-23 16:41:22.960 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
-2019-09-23 16:41:22.960 INFO 5456 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
-2019-09-23 16:41:22.965 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:41:22.965 INFO 5456 --- [restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
-2019-09-23 16:41:23.046 INFO 5456 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
-2019-09-23 16:41:23.056 INFO 5456 --- [restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
-2019-09-23 16:41:23.136 INFO 5456 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
-2019-09-23 16:41:23.137 INFO 5456 --- [restartedMain] .b.b.r.j.SpringBootRedisJedisApplication : Started SpringBootRedisJedisApplication in 1.719 seconds (JVM running for 105.37)
-2019-09-23 16:41:23.139 INFO 5456 --- [restartedMain] .ConditionEvaluationDeltaLoggingListener : Condition evaluation unchanged
-2019-09-23 16:41:31.538 ERROR 5456 --- [http-nio-8080-exec-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
-2019-09-23 16:41:31.540 INFO 5456 --- [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
-2019-09-23 16:41:31.540 INFO 5456 --- [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
-2019-09-23 16:41:31.542 INFO 5456 --- [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 2 ms
-2019-09-23 16:42:01.171 ERROR 5456 --- [http-nio-8080-exec-9] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
diff --git a/SpringBoot-Redis-Jedis/src/main/resources/logback.xml b/SpringBoot-Redis-Jedis/src/main/resources/logback.xml
new file mode 100644
index 0000000..4ddc2dd
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/src/main/resources/logback.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+ ${LOG_HOME}/springboot_button.log
+
+
+
+ ${LOG_HOME}/springboot_button.log.%d{yyyy-MM-dd}.%i.log
+
+
+
+ 100MB
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
+
+
+
+
+
+
+
+
--
Gitee
From 89b16a4c72709dbf536e0f2552f0feeddc405de0 Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 20:31:14 +0800
Subject: [PATCH 7/9] =?UTF-8?q?=E6=8F=90=E4=BA=A4gitignore=E6=96=87?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
SpringBoot-Redis-Jedis/.gitignore | 1 +
SpringBoot-Redis-Lettuce/.gitignore | 1 +
Springboot-Quartz-Cluster/.gitignore | 1 +
Springboot-Quartz-StandAlone/.gitignore | 1 +
Springboot-Swagger/.gitignore | 1 +
5 files changed, 5 insertions(+)
create mode 100644 SpringBoot-Redis-Jedis/.gitignore
create mode 100644 SpringBoot-Redis-Lettuce/.gitignore
create mode 100644 Springboot-Quartz-Cluster/.gitignore
create mode 100644 Springboot-Quartz-StandAlone/.gitignore
create mode 100644 Springboot-Swagger/.gitignore
diff --git a/SpringBoot-Redis-Jedis/.gitignore b/SpringBoot-Redis-Jedis/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/SpringBoot-Redis-Jedis/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/SpringBoot-Redis-Lettuce/.gitignore b/SpringBoot-Redis-Lettuce/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/SpringBoot-Redis-Lettuce/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/Springboot-Quartz-Cluster/.gitignore b/Springboot-Quartz-Cluster/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/Springboot-Quartz-Cluster/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/Springboot-Quartz-StandAlone/.gitignore b/Springboot-Quartz-StandAlone/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/Springboot-Quartz-StandAlone/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/Springboot-Swagger/.gitignore b/Springboot-Swagger/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/Springboot-Swagger/.gitignore
@@ -0,0 +1 @@
+/target/
--
Gitee
From 380a3f9184d23d6baafbac0d2924d016361bb4c5 Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 21:35:07 +0800
Subject: [PATCH 8/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Springboot-Quartz-Cluster/quartz.sql | 348 +++++++++---------
.../src/main/resources/application.yml | 46 +--
2 files changed, 197 insertions(+), 197 deletions(-)
diff --git a/Springboot-Quartz-Cluster/quartz.sql b/Springboot-Quartz-Cluster/quartz.sql
index aeaf542..c96348d 100644
--- a/Springboot-Quartz-Cluster/quartz.sql
+++ b/Springboot-Quartz-Cluster/quartz.sql
@@ -1,174 +1,174 @@
-CREATE DATABASE springboot-quartz;
-USE springboot-quartz;
-
-DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
-DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
-DROP TABLE IF EXISTS QRTZ_LOCKS;
-DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_TRIGGERS;
-DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
-DROP TABLE IF EXISTS QRTZ_CALENDARS;
-
-CREATE TABLE QRTZ_JOB_DETAILS(
-SCHED_NAME VARCHAR(120) NOT NULL,
-JOB_NAME VARCHAR(200) NOT NULL,
-JOB_GROUP VARCHAR(200) NOT NULL,
-DESCRIPTION VARCHAR(250) NULL,
-JOB_CLASS_NAME VARCHAR(250) NOT NULL,
-IS_DURABLE VARCHAR(1) NOT NULL,
-IS_NONCONCURRENT VARCHAR(1) NOT NULL,
-IS_UPDATE_DATA VARCHAR(1) NOT NULL,
-REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
-JOB_DATA BLOB NULL,
-PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_TRIGGERS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-JOB_NAME VARCHAR(200) NOT NULL,
-JOB_GROUP VARCHAR(200) NOT NULL,
-DESCRIPTION VARCHAR(250) NULL,
-NEXT_FIRE_TIME BIGINT(13) NULL,
-PREV_FIRE_TIME BIGINT(13) NULL,
-PRIORITY INTEGER NULL,
-TRIGGER_STATE VARCHAR(16) NOT NULL,
-TRIGGER_TYPE VARCHAR(8) NOT NULL,
-START_TIME BIGINT(13) NOT NULL,
-END_TIME BIGINT(13) NULL,
-CALENDAR_NAME VARCHAR(200) NULL,
-MISFIRE_INSTR SMALLINT(2) NULL,
-JOB_DATA BLOB NULL,
-PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
-FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
-REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-REPEAT_COUNT BIGINT(7) NOT NULL,
-REPEAT_INTERVAL BIGINT(12) NOT NULL,
-TIMES_TRIGGERED BIGINT(10) NOT NULL,
-PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
-FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
-REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_CRON_TRIGGERS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-CRON_EXPRESSION VARCHAR(120) NOT NULL,
-TIME_ZONE_ID VARCHAR(80),
-PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
-FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
-REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_SIMPROP_TRIGGERS
- (
- SCHED_NAME VARCHAR(120) NOT NULL,
- TRIGGER_NAME VARCHAR(200) NOT NULL,
- TRIGGER_GROUP VARCHAR(200) NOT NULL,
- STR_PROP_1 VARCHAR(512) NULL,
- STR_PROP_2 VARCHAR(512) NULL,
- STR_PROP_3 VARCHAR(512) NULL,
- INT_PROP_1 INT NULL,
- INT_PROP_2 INT NULL,
- LONG_PROP_1 BIGINT NULL,
- LONG_PROP_2 BIGINT NULL,
- DEC_PROP_1 NUMERIC(13,4) NULL,
- DEC_PROP_2 NUMERIC(13,4) NULL,
- BOOL_PROP_1 VARCHAR(1) NULL,
- BOOL_PROP_2 VARCHAR(1) NULL,
- PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
- FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
- REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_BLOB_TRIGGERS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-BLOB_DATA BLOB NULL,
-PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
-INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
-FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
-REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_CALENDARS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-CALENDAR_NAME VARCHAR(200) NOT NULL,
-CALENDAR BLOB NOT NULL,
-PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_FIRED_TRIGGERS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-ENTRY_ID VARCHAR(95) NOT NULL,
-TRIGGER_NAME VARCHAR(200) NOT NULL,
-TRIGGER_GROUP VARCHAR(200) NOT NULL,
-INSTANCE_NAME VARCHAR(200) NOT NULL,
-FIRED_TIME BIGINT(13) NOT NULL,
-SCHED_TIME BIGINT(13) NOT NULL,
-PRIORITY INTEGER NOT NULL,
-STATE VARCHAR(16) NOT NULL,
-JOB_NAME VARCHAR(200) NULL,
-JOB_GROUP VARCHAR(200) NULL,
-IS_NONCONCURRENT VARCHAR(1) NULL,
-REQUESTS_RECOVERY VARCHAR(1) NULL,
-PRIMARY KEY (SCHED_NAME,ENTRY_ID))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_SCHEDULER_STATE (
-SCHED_NAME VARCHAR(120) NOT NULL,
-INSTANCE_NAME VARCHAR(200) NOT NULL,
-LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
-CHECKIN_INTERVAL BIGINT(13) NOT NULL,
-PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
-ENGINE=InnoDB;
-
-CREATE TABLE QRTZ_LOCKS (
-SCHED_NAME VARCHAR(120) NOT NULL,
-LOCK_NAME VARCHAR(40) NOT NULL,
-PRIMARY KEY (SCHED_NAME,LOCK_NAME))
-ENGINE=InnoDB;
-
-CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
-CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);
-
-CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
-CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);
-CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);
-CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
-CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);
-CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
-CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
-CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);
-CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
-CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
-CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
-CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
-
-CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);
-CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
-CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
-CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
-CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
-CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
-
-commit;
+CREATE DATABASE springboot_quartz;
+USE springboot_quartz;
+
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+CREATE TABLE QRTZ_JOB_DETAILS(
+SCHED_NAME VARCHAR(120) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+IS_DURABLE VARCHAR(1) NOT NULL,
+IS_NONCONCURRENT VARCHAR(1) NOT NULL,
+IS_UPDATE_DATA VARCHAR(1) NOT NULL,
+REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+NEXT_FIRE_TIME BIGINT(13) NULL,
+PREV_FIRE_TIME BIGINT(13) NULL,
+PRIORITY INTEGER NULL,
+TRIGGER_STATE VARCHAR(16) NOT NULL,
+TRIGGER_TYPE VARCHAR(8) NOT NULL,
+START_TIME BIGINT(13) NOT NULL,
+END_TIME BIGINT(13) NULL,
+CALENDAR_NAME VARCHAR(200) NULL,
+MISFIRE_INSTR SMALLINT(2) NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+REPEAT_COUNT BIGINT(7) NOT NULL,
+REPEAT_INTERVAL BIGINT(12) NOT NULL,
+TIMES_TRIGGERED BIGINT(10) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+CRON_EXPRESSION VARCHAR(120) NOT NULL,
+TIME_ZONE_ID VARCHAR(80),
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+BLOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CALENDARS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+CALENDAR_NAME VARCHAR(200) NOT NULL,
+CALENDAR BLOB NOT NULL,
+PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+ENTRY_ID VARCHAR(95) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+FIRED_TIME BIGINT(13) NOT NULL,
+SCHED_TIME BIGINT(13) NOT NULL,
+PRIORITY INTEGER NOT NULL,
+STATE VARCHAR(16) NOT NULL,
+JOB_NAME VARCHAR(200) NULL,
+JOB_GROUP VARCHAR(200) NULL,
+IS_NONCONCURRENT VARCHAR(1) NULL,
+REQUESTS_RECOVERY VARCHAR(1) NULL,
+PRIMARY KEY (SCHED_NAME,ENTRY_ID))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+SCHED_NAME VARCHAR(120) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
+CHECKIN_INTERVAL BIGINT(13) NOT NULL,
+PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_LOCKS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+LOCK_NAME VARCHAR(40) NOT NULL,
+PRIMARY KEY (SCHED_NAME,LOCK_NAME))
+ENGINE=InnoDB;
+
+CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);
+
+CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);
+CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
+
+CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);
+CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+
+commit;
diff --git a/Springboot-Quartz-Cluster/src/main/resources/application.yml b/Springboot-Quartz-Cluster/src/main/resources/application.yml
index 061131e..c0c1637 100644
--- a/Springboot-Quartz-Cluster/src/main/resources/application.yml
+++ b/Springboot-Quartz-Cluster/src/main/resources/application.yml
@@ -1,24 +1,24 @@
-server:
- port: 8080
-
-logging:
- file: logback.xml
-
-spring:
- dataSource:
- url: jdbc:mysql://localhost:3306/springboot-quartz?characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true&useSSL=true&zeroDateTimeBehavior=convertToNull
- username: root
- password: 123456
- driver-class-name: com.mysql.jdbc.Driver
- type: com.zaxxer.hikari.HikariDataSource
- hikari:
- minimum-idle: 5
- maximum-pool-size: 15
- idle-timeout: 30000
- pool-name: DatebookHikariCP
- max-lifetime: 1800000
- connection-timeout: 30000
- connection-test-query: 'SELECT 1'
-
-quartz:
+server:
+ port: 8080
+
+logging:
+ file: logback.xml
+
+spring:
+ dataSource:
+ url: jdbc:mysql://localhost:3306/springboot_quartz?characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true&useSSL=false&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: 211314
+ driver-class-name: com.mysql.jdbc.Driver
+ type: com.zaxxer.hikari.HikariDataSource
+ hikari:
+ minimum-idle: 5
+ maximum-pool-size: 15
+ idle-timeout: 30000
+ pool-name: DatebookHikariCP
+ max-lifetime: 1800000
+ connection-timeout: 30000
+ connection-test-query: 'SELECT 1'
+
+quartz:
cronExpression: 0 0/1 * * * ?
\ No newline at end of file
--
Gitee
From ddb87a440149b5eac7b4561616390a88d7a81a92 Mon Sep 17 00:00:00 2001
From: "zhang.hang" <2740277548@qq.com>
Date: Mon, 23 Sep 2019 21:37:35 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Springboot-Quartz-Cluster/src/main/resources/application.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Springboot-Quartz-Cluster/src/main/resources/application.yml b/Springboot-Quartz-Cluster/src/main/resources/application.yml
index c0c1637..74833fb 100644
--- a/Springboot-Quartz-Cluster/src/main/resources/application.yml
+++ b/Springboot-Quartz-Cluster/src/main/resources/application.yml
@@ -19,6 +19,7 @@ spring:
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: 'SELECT 1'
-
+# Path does not chain with any of the trust anchors
+# 在windows上是MySql5.5没有问题,5.8出现异常把useSSL=true改为useSSL=false就好了。
quartz:
cronExpression: 0 0/1 * * * ?
\ No newline at end of file
--
Gitee