Druid使用及开启US幸运飞艇平台出租数据库密码加密

Springboot环境US幸运飞艇平台出租QQ2952777280【话仙源码论坛】hxforum.com【木瓜源码论坛】papayabbs.com下的配置

1.maven引包

1 <dependency>
2 <groupId>com.alibaba</groupId>
3 <artifactId>druid</artifactId>
4 <version>1.0.26</version>
5 </dependency>

2.创建配置类

复制代码
1 package com.tqh.demo.config;
2
3 import com.alibaba.druid.pool.DruidDataSource;
4 import com.alibaba.druid.support.http.StatViewServlet;
5 import com.alibaba.druid.support.http.WebStatFilter;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8 import org.springframework.beans.factory.annotation.Value;
9 import org.springframework.boot.web.servlet.FilterRegistrationBean;
10 import org.springframework.boot.web.servlet.ServletRegistrationBean;
11 import org.springframework.context.annotation.Bean;
12 import org.springframework.context.annotation.Configuration;
13
14 import javax.sql.DataSource;
15 import java.sql.SQLException;
16 import java.util.Properties;
17
18
19 /*
20
@Author: Mcorleon
21 @Date: 18-7-27 14:37
22
/
23 @Configuration
24 public class DruidConfig {
25
26 private Logger logger = LoggerFactory.getLogger(DruidConfig.class);
27
28 @Value("${spring.datasource.url}")
29 private String dbUrl;
30
31 @Value("${spring.datasource.username}")
32 private String username;
33
34 @Value("${spring.datasource.password}")
35 private String password;
36
37 @Value("${spring.datasource.driver-class-name}")
38 private String driverClassName;
39
40 @Value("${spring.datasource.initialSize}")
41 private int initialSize;
42
43 @Value("${spring.datasource.minIdle}")
44 private int minIdle;
45
46 @Value("${spring.datasource.maxActive}")
47 private int maxActive;
48
49 @Value("${spring.datasource.maxWait}")
50 private int maxWait;
51
52 @Value("${spring.datasource.timeBetweenEvictionRunsMillis}")
53 private int timeBetweenEvictionRunsMillis;
54
55 @Value("${spring.datasource.minEvictableIdleTimeMillis}")
56 private int minEvictableIdleTimeMillis;
57
58 @Value("${spring.datasource.validationQuery}")
59 private String validationQuery;
60
61 @Value("${spring.datasource.testWhileIdle}")
62 private boolean testWhileIdle;
63
64 @Value("${spring.datasource.testOnBorrow}")
65 private boolean testOnBorrow;
66
67 @Value("${spring.datasource.testOnReturn}")
68 private boolean testOnReturn;
69
70 @Value("${spring.datasource.filters}")
71 private String filters;
72
73 @Value("${spring.datasource.logSlowSql}")
74 private String logSlowSql;
75
76 @Value("${spring.datasource.publickey}")
77 private String publickey;
78
79 @Bean
80 public ServletRegistrationBean druidServlet() {
81 ServletRegistrationBean reg = new ServletRegistrationBean();
82 reg.setServlet(new StatViewServlet());
83 reg.addUrlMappings("/druid/");
84 //登录druid是否需要密码
85 // reg.addInitParameter("loginUsername", username);
86 // reg.addInitParameter("loginPassword", password);
87 reg.addInitParameter("logSlowSql", logSlowSql);
88 return reg;
89 }
90
91 @Bean
92 public FilterRegistrationBean filterRegistrationBean() {
93 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
94 filterRegistrationBean.setFilter(new WebStatFilter());
95 filterRegistrationBean.addUrlPatterns("/
");
96 filterRegistrationBean.addInitParameter("exclusions", ".js,.gif,.jpg,.png,.css,.ico,/druid/*");
97 filterRegistrationBean.addInitParameter("profileEnable", "true");
98 return filterRegistrationBean;
99 }
100
101 @Bean
102 public DataSource druidDataSource() {
103 DruidDataSource datasource = new DruidDataSource();
104 //数据库密码加密配置
105 Properties connectionProperties=new Properties();
106 connectionProperties.setProperty("config.decrypt","true");
107 connectionProperties.setProperty("config.decrypt.key",publickey);
108
109 datasource.setUrl(dbUrl);
110 datasource.setUsername(username);
111 datasource.setPassword(password);
112 datasource.setConnectProperties(connectionProperties);
113 datasource.setDriverClassName(driverClassName);
114 datasource.setInitialSize(initialSize);
115 datasource.setMinIdle(minIdle);
116 datasource.setMaxActive(maxActive);
117 datasource.setMaxWait(maxWait);
118 datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
119 datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
120 datasource.setValidationQuery(validationQuery);
121 datasource.setTestWhileIdle(testWhileIdle);
122 datasource.setTestOnBorrow(testOnBorrow);
123 datasource.setTestOnReturn(testOnReturn);
124 try {
125 datasource.setFilters(filters);
126 } catch (SQLException e) {
127 logger.error("druid configuration initialization filter", e);
128 }
129 return datasource;
130 }
131
132 }
复制代码

3.application.yml配置

复制代码
1 server:
2 port: 9090
3 spring:
4 datasource:
5 type: com.alibaba.druid.pool.DruidDataSource
6 url: jdbc:mysql://localhost:3306/shiro_test?useUnicode=true&characterEncoding=utf8&useSSL=false
7 username: root
8 password: HKMN8fFgGT4s23cKLt5WD6/PN0kSWzgF1o5FcCZnjh1fD5+vw4FXDiWWttFQtiq4NJK64DgVXCYechjfsUyJzA==
9 publickey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ7GBjiihzT3GYDn2JfpqjhPJ8Opo/Nn4n9GVHCv0d2PM8DPrwAtjQ9RmpwpWFWK5ErmMDKF32Hv7JFMEaCzH9MCAwEAAQ==
10 driver-class-name: com.mysql.jdbc.Driver
11 # 下面为连接池的补充设置,应用到上面所有数据源中
12 initialSize: 5
13 minIdle: 5
14 maxActive: 20
15 # 配置获取连接等待超时的时间
16 maxWait: 60000
17 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
18 timeBetweenEvictionRunsMillis: 60000
19 # 配置一个连接在池中最小生存的时间,单位是毫秒
20 minEvictableIdleTimeMillis: 300000
21 validationQuery: SELECT 1 FROM DUAL
22 testWhileIdle: true
23 testOnBorrow: false
24 testOnReturn: false
25 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 'config'开启密码加密
26 filters: stat,wall,log4j,config
27 logSlowSql: true
28 mvc:
29 view:
30 prefix: classpath:/templates/
31 suffix: .html
32 static-path-pattern: /static/**
33 mybatis:
34 type-aliases-package: com.tqh.demo.model
复制代码
其中,publickey用于解密出密码,私钥,公钥,暗文密码都是用 ConfigTools类生成的,生成方法:找到durid jar包的路径并运行:

java -cp 路径/druid.jar com.alibaba.druid.filter.config.ConfigTools 你的明文密码

最后在浏览器输入http://localhost:9090/druid即可开启监控页面

猜你喜欢

转载自blog.51cto.com/13891947/2151475