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