Commit 6c969a63dd17d30efc1ef13adc46893798df2601

Authored by 648540858
1 parent 3227dcd0

去除druid数据库连接池,使用spring支持的hikari

... ... @@ -123,11 +123,9 @@
123 123 <artifactId>spring-boot-starter-security</artifactId>
124 124 </dependency>
125 125  
126   - <!-- druid数据库连接池 -->
127 126 <dependency>
128   - <groupId>com.alibaba</groupId>
129   - <artifactId>druid-spring-boot-starter</artifactId>
130   - <version>1.2.11</version>
  127 + <groupId>org.springframework.boot</groupId>
  128 + <artifactId>spring-boot-starter-jdbc</artifactId>
131 129 </dependency>
132 130  
133 131 <!-- mysql数据库 -->
... ... @@ -294,7 +292,7 @@
294 292 <plugin>
295 293 <groupId>org.springframework.boot</groupId>
296 294 <artifactId>spring-boot-maven-plugin</artifactId>
297   - <version>2.3.5.RELEASE</version>
  295 + <version>2.7.2</version>
298 296 <configuration>
299 297 <includeSystemScope>true</includeSystemScope>
300 298 </configuration>
... ...
src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java
1 1 package com.genersoft.iot.vmp;
2 2  
3   -import com.genersoft.iot.vmp.conf.druid.EnableDruidSupport;
4 3 import com.genersoft.iot.vmp.utils.GitUtil;
5 4 import com.genersoft.iot.vmp.utils.SpringBeanFactory;
6 5 import org.slf4j.Logger;
... ... @@ -25,7 +24,6 @@ import java.util.Collections;
25 24 @ServletComponentScan("com.genersoft.iot.vmp.conf")
26 25 @SpringBootApplication
27 26 @EnableScheduling
28   -@EnableDruidSupport
29 27 public class VManageBootstrap extends SpringBootServletInitializer {
30 28  
31 29 private final static Logger logger = LoggerFactory.getLogger(VManageBootstrap.class);
... ...
src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java
... ... @@ -10,14 +10,11 @@ import org.springframework.context.annotation.Bean;
10 10 import org.springframework.core.MethodParameter;
11 11 import org.springframework.http.MediaType;
12 12 import org.springframework.http.converter.HttpMessageConverter;
13   -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
14 13 import org.springframework.http.server.ServerHttpRequest;
15 14 import org.springframework.http.server.ServerHttpResponse;
16 15 import org.springframework.web.bind.annotation.RestControllerAdvice;
17 16 import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
18 17  
19   -import java.util.List;
20   -
21 18 /**
22 19 * 全局统一返回结果
23 20 * @author lin
... ... @@ -63,7 +60,7 @@ public class GlobalResponseAdvice implements ResponseBodyAdvice&lt;Object&gt; {
63 60 * @return
64 61 */
65 62 @Bean
66   - public HttpMessageConverters custHttpMessageConverter() {
  63 + public HttpMessageConverters fast() {
67 64 return new HttpMessageConverters(new FastJsonHttpMessageConverter());
68 65 }
69 66 }
... ...
src/main/java/com/genersoft/iot/vmp/conf/druid/DruidConfiguration.java deleted 100644 → 0
1   -package com.genersoft.iot.vmp.conf.druid;
2   -
3   -import com.alibaba.druid.support.http.StatViewServlet;
4   -import com.alibaba.druid.support.http.WebStatFilter;
5   -import org.springframework.beans.factory.annotation.Value;
6   -import org.springframework.boot.web.servlet.FilterRegistrationBean;
7   -import org.springframework.boot.web.servlet.ServletRegistrationBean;
8   -import org.springframework.context.annotation.Bean;
9   -
10   -import javax.servlet.Filter;
11   -import javax.servlet.Servlet;
12   -
13   -/**
14   - * druid监控配置
15   - * @author
16   - */
17   -public class DruidConfiguration {
18   -
19   - @Value("${rj-druid-manage.allow:127.0.0.1}")
20   - private String allow;
21   -
22   - @Value("${rj-druid-manage.deny:}")
23   - private String deny;
24   -
25   - @Value("${rj-druid-manage.loginUsername:admin}")
26   - private String loginUsername;
27   -
28   - @Value("${rj-druid-manage.loginPassword:admin}")
29   - private String loginPassword;
30   -
31   - @Value("${rj-druid-manage.resetEnable:false}")
32   - private String resetEnable;
33   -
34   - /**
35   - * druid监控页面开启
36   - */
37   - @Bean
38   - public ServletRegistrationBean druidServlet() {
39   - ServletRegistrationBean<Servlet> servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
40   - // IP白名单
41   - servletRegistrationBean.addInitParameter("allow", allow);
42   - // IP黑名单(共同存在时,deny优先于allow)
43   - servletRegistrationBean.addInitParameter("deny", deny);
44   - //控制台管理用户
45   - servletRegistrationBean.addInitParameter("loginUsername", loginUsername);
46   - servletRegistrationBean.addInitParameter("loginPassword", loginPassword);
47   - //是否能够重置数据 禁用HTML页面上的“Reset All”功能
48   - servletRegistrationBean.addInitParameter("resetEnable", resetEnable);
49   - return servletRegistrationBean;
50   - }
51   -
52   - /**
53   - * druid url监控配置
54   - */
55   - @Bean
56   - public FilterRegistrationBean filterRegistrationBean() {
57   - FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(new WebStatFilter());
58   - filterRegistrationBean.addUrlPatterns("/*");
59   - filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
60   - return filterRegistrationBean;
61   - }
62   -
63   -
64   -}
65 0 \ No newline at end of file
src/main/java/com/genersoft/iot/vmp/conf/druid/EnableDruidSupport.java deleted 100644 → 0
1   -package com.genersoft.iot.vmp.conf.druid;
2   -
3   -import org.springframework.boot.web.servlet.ServletComponentScan;
4   -import org.springframework.context.annotation.Import;
5   -
6   -import java.lang.annotation.*;
7   -
8   -/**
9   - * druid监控支持注解
10   - *
11   - * @author
12   - * {@link DruidConfiguration} druid监控页面安全配置支持
13   - * {@link ServletComponentScan} druid监控页面需要扫描servlet
14   - */
15   -@Target(ElementType.TYPE)
16   -@Retention(RetentionPolicy.RUNTIME)
17   -@Documented
18   -@Inherited
19   -@Import({
20   - DruidConfiguration.class,
21   -})
22   -@ServletComponentScan
23   -public @interface EnableDruidSupport {
24   -}
src/main/resources/all-application.yml
... ... @@ -30,44 +30,19 @@ spring:
30 30 poolMaxWait: 5
31 31 # [必选] jdbc数据库配置
32 32 datasource:
33   - type: com.alibaba.druid.pool.DruidDataSource
  33 + type: com.zaxxer.hikari.HikariDataSource
34 34 driver-class-name: com.mysql.cj.jdbc.Driver
35 35 url: jdbc:mysql://127.0.0.1:3306/wvp2?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true
36 36 username: root
37 37 password: root123
38   - druid:
  38 + hikari:
  39 + connection-timeout: 20000 # 是客户端等待连接池连接的最大毫秒数
39 40 initialSize: 10 # 连接池初始化连接数
40   - maxActive: 200 # 连接池最大连接数
41   - minIdle: 5 # 连接池最小空闲连接数
42   - maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
43   - keepAlive: true # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
44   - validationQuery: select 1 # 检测连接是否有效sql,要求是查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
45   - testWhileIdle: true # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
46   - testOnBorrow: false # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
47   - testOnReturn: false # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
48   - poolPreparedStatements: false # 是否開啟PSCache,並且指定每個連線上PSCache的大小
49   - timeBetweenEvictionRunsMillis: 60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
50   - minEvictableIdleTimeMillis: 300000 # 配置一個連線在池中最小生存的時間,單位是毫秒
51   - filters: stat,slf4j # 配置监控统计拦截的filters,监控统计用的filter:sta, 日志用的filter:log4j
52   - useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据
53   - # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
54   - connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000
55   - #stat-view-servlet.url-pattern: /admin/druid/*
  41 + maximum-pool-size: 200 # 连接池最大连接数
  42 + minimum-idle: 5 # 连接池最小空闲连接数
  43 + idle-timeout: 300000 # 允许连接在连接池中空闲的最长时间(以毫秒为单位)
  44 + max-lifetime: 1200000 # 是池中连接关闭后的最长生命周期(以毫秒为单位)
56 45  
57   -# druid管理监控页面的一些配置
58   -rj-druid-manage:
59   - allow: # 访问druid监控页面的IP白名单
60   - deny: 192.168.1.100 # 访问druid监控页面IP黑名单
61   - loginUsername: rjAdmin # 访问druid监控页面账号
62   - loginPassword: rj@2022 # 访问druid监控页面密码
63   -
64   -#mybatis:
65   -# configuration:
66   -# # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
67   -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
68   -# # 返回类型为Map,显示null对应的字段
69   -# call-setters-on-nulls: true
70   -## [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
71 46  
72 47 # [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
73 48 server:
... ...