diff --git a/boot-service/pom.xml b/boot-service/pom.xml
index b9c765f..a5a4a79 100644
--- a/boot-service/pom.xml
+++ b/boot-service/pom.xml
@@ -39,6 +39,11 @@
mysql-connector-java
runtime
+
+ com.alibaba
+ druid
+ 1.0.20
+
org.projectlombok
diff --git a/boot-service/src/main/java/com/xwbing/domain/entity/model/DruidDataSourceModel.java b/boot-service/src/main/java/com/xwbing/domain/entity/model/DruidDataSourceModel.java
new file mode 100644
index 0000000..fa19d4e
--- /dev/null
+++ b/boot-service/src/main/java/com/xwbing/domain/entity/model/DruidDataSourceModel.java
@@ -0,0 +1,32 @@
+package com.xwbing.domain.entity.model;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@PropertySource("classpath:druid.properties")
+@ConfigurationProperties(prefix = "jdbc")
+public class DruidDataSourceModel {
+ private String url;
+ private String username;
+ private String password;
+ private String driver;
+ private int initSize;
+ private int minIdle;
+ private int maxActive;
+ private int maxWait;
+ private int timeBetweenEvictionRunsMillis;
+ private int minEvictableIdleTimeMillis;
+ private String validationQuery;
+ private boolean testWhileIdle;
+ private boolean testOnBorrow;
+ private boolean testOnReturn;
+ private boolean poolPreparedStatements;
+ private int maxPoolPreparedStatementPerConnectionSize;
+ private String filters;
+ private String connectionProperties;
+ private boolean useGlobalDataSourceStat;
+}
diff --git a/boot-service/src/main/resources/druid.properties b/boot-service/src/main/resources/druid.properties
new file mode 100644
index 0000000..c0b6996
--- /dev/null
+++ b/boot-service/src/main/resources/druid.properties
@@ -0,0 +1,29 @@
+# 数据库基本信息配置
+jdbc.driver=com.mysql.jdbc.Driver
+jdbc.url=jdbc:mysql://127.0.0.1:3306/springboot2?useUnicode=true&characterEncoding=utf8
+jdbc.username=root
+jdbc.password=
+# 初始化大小,最小,最大
+jdbc.initSize=1
+jdbc.minIdle=3
+jdbc.maxActive=20
+# 获取连接最大等待时间
+jdbc.maxWait=60000
+# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+jdbc.timeBetweenEvictionRunsMillis=60000
+# 配置一个连接在池中最小生存的时间,单位是毫秒
+jdbc.minEvictableIdleTimeMillis=30000
+# 连接性能检测(用来检测连接是否有效的sql,为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用)
+jdbc.validationQuery=SELECT 'x'
+jdbc.testWhileIdle=true
+jdbc.testOnBorrow=false
+jdbc.testOnReturn=false
+# 打开PSCache,并且指定每个连接上PSCache的大小 ,mysql建议false
+jdbc.poolPreparedStatements=false
+jdbc.maxPoolPreparedStatementPerConnectionSize=20
+# 配置监控统计拦截的filters
+jdbc.filters=stat,wall,slf4j
+# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+jdbc.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+# 合并多个DruidDataSource的监控数据
+#jdbc.useGlobalDataSourceStat=true
\ No newline at end of file
diff --git a/boot-web/pom.xml b/boot-web/pom.xml
index 86ce348..64302fc 100644
--- a/boot-web/pom.xml
+++ b/boot-web/pom.xml
@@ -81,6 +81,7 @@
commons-fileupload
${fileUpLoad.version}
+
boot-web
diff --git a/boot-web/src/main/java/com/xwbing/configuration/DruidConfig.java b/boot-web/src/main/java/com/xwbing/configuration/DruidConfig.java
new file mode 100644
index 0000000..95b7a4f
--- /dev/null
+++ b/boot-web/src/main/java/com/xwbing/configuration/DruidConfig.java
@@ -0,0 +1,54 @@
+package com.xwbing.configuration;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.xwbing.domain.entity.model.DruidDataSourceModel;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.annotation.Resource;
+import java.sql.SQLException;
+
+/**
+ * 说明: 德鲁伊监控:druid/index.html
+ * 项目名称: boot-module-demo
+ * 创建时间: 2017/5/10 16:36
+ * 作者: xiangwb
+ */
+@Configuration
+@EnableConfigurationProperties(DruidDataSourceModel.class)
+public class DruidConfig {
+ @Resource
+ private DruidDataSourceModel druidDataSourceModel;
+
+ @Bean
+ @Primary
+ public DruidDataSource dataSource() {
+ DruidDataSource dataSource = new DruidDataSource();
+ dataSource.setUrl(druidDataSourceModel.getUrl());
+ dataSource.setDriverClassName(druidDataSourceModel.getDriver());
+ dataSource.setUsername(druidDataSourceModel.getUsername());
+ dataSource.setPassword(druidDataSourceModel.getPassword());
+ dataSource.setInitialSize(druidDataSourceModel.getInitSize());
+ dataSource.setMinIdle(druidDataSourceModel.getMinIdle());
+ dataSource.setMaxActive(druidDataSourceModel.getMaxActive());
+ dataSource.setMaxWait(druidDataSourceModel.getMaxWait());
+ dataSource.setTimeBetweenEvictionRunsMillis(druidDataSourceModel.getTimeBetweenEvictionRunsMillis());
+ dataSource.setMinEvictableIdleTimeMillis(druidDataSourceModel.getMinEvictableIdleTimeMillis());
+ dataSource.setValidationQuery(druidDataSourceModel.getValidationQuery());
+ dataSource.setTestWhileIdle(druidDataSourceModel.isTestWhileIdle());
+ dataSource.setTestOnBorrow(druidDataSourceModel.isTestOnBorrow());
+ dataSource.setTestOnReturn(druidDataSourceModel.isTestOnReturn());
+ dataSource.setPoolPreparedStatements(druidDataSourceModel.isPoolPreparedStatements());
+ dataSource.setMaxPoolPreparedStatementPerConnectionSize(druidDataSourceModel.getMaxPoolPreparedStatementPerConnectionSize());
+ dataSource.setConnectionProperties(druidDataSourceModel.getConnectionProperties());
+ dataSource.setUseGlobalDataSourceStat(druidDataSourceModel.isUseGlobalDataSourceStat());
+ try {
+ dataSource.setFilters(druidDataSourceModel.getFilters());
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return dataSource;
+ }
+}
diff --git a/boot-web/src/main/java/com/xwbing/configuration/ServletConfig.java b/boot-web/src/main/java/com/xwbing/configuration/ServletConfig.java
deleted file mode 100644
index 451f270..0000000
--- a/boot-web/src/main/java/com/xwbing/configuration/ServletConfig.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.xwbing.configuration;
-
-import com.xwbing.util.captcha.CaptchaServlet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.web.servlet.ServletRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * 说明: 统一的servlet配置
- * 项目名称: boot-module-demo
- * 创建时间: 2017/5/10 16:36
- * 作者: xiangwb
- */
-@Configuration
-public class ServletConfig {
- private final Logger logger = LoggerFactory.getLogger(ServletConfig.class);
-
- @Bean
- public ServletRegistrationBean captchaServletRegistrationBean() {
- logger.info("注册验证码servlet ======================= ");
- CaptchaServlet captchaServlet = new CaptchaServlet();
- ServletRegistrationBean registration = new ServletRegistrationBean(captchaServlet);
- registration.setEnabled(true);
- registration.addUrlMappings("/servlet/captcha");
- return registration;
- }
- /********************************************/
-
-}
diff --git a/boot-web/src/main/java/com/xwbing/configuration/ServletFilterConfig.java b/boot-web/src/main/java/com/xwbing/configuration/ServletFilterConfig.java
new file mode 100644
index 0000000..72510dd
--- /dev/null
+++ b/boot-web/src/main/java/com/xwbing/configuration/ServletFilterConfig.java
@@ -0,0 +1,53 @@
+package com.xwbing.configuration;
+
+import com.alibaba.druid.support.http.StatViewServlet;
+import com.alibaba.druid.support.http.WebStatFilter;
+import com.xwbing.util.captcha.CaptchaServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 说明: 统一的servlet/filter配置
+ * 项目名称: boot-module-demo
+ * 创建时间: 2017/5/10 16:36
+ * 作者: xiangwb
+ */
+@Configuration
+public class ServletFilterConfig {
+ private final Logger logger = LoggerFactory.getLogger(ServletFilterConfig.class);
+
+ @Bean
+ public ServletRegistrationBean captchaServlet() {
+ logger.info("注册验证码servlet ======================= ");
+ ServletRegistrationBean registration = new ServletRegistrationBean(new CaptchaServlet());
+ registration.addUrlMappings("/captcha");
+ return registration;
+ }
+
+ @Bean
+ public ServletRegistrationBean druidServlet() {
+ logger.info("注册druidServlet ======================= ");
+ ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
+ registration.addUrlMappings("/druid/*");
+ //添加初始化参数:initParams
+// registration.addInitParameter("allow", "127.0.0.1");//IP白名单(没有配置或者为空,则允许所有访问)
+// registration.addInitParameter("deny", "192.168.31.234");//IP黑名单(存在共同时,deny优先于allow)
+ registration.addInitParameter("loginUsername", "admin");//用户名
+ registration.addInitParameter("loginPassword", "123456");//密码
+ registration.addInitParameter("resetEnable", "false");//禁用HTML页面上的“Reset All”功能
+ return registration;
+ }
+ /*******************************************************/
+
+ @Bean
+ public FilterRegistrationBean webStatFilter() {
+ FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
+ filterRegistrationBean.addUrlPatterns("/*");
+ filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
+ return filterRegistrationBean;
+ }
+}
diff --git a/boot-web/src/main/java/com/xwbing/handler/LoginInterceptor.java b/boot-web/src/main/java/com/xwbing/handler/LoginInterceptor.java
index 98621e6..54ea300 100644
--- a/boot-web/src/main/java/com/xwbing/handler/LoginInterceptor.java
+++ b/boot-web/src/main/java/com/xwbing/handler/LoginInterceptor.java
@@ -31,7 +31,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
//映射swagger文档
set.add("/doc");
//验证码
- set.add("/servlet/captcha");
+ set.add("/captcha");
//swagger
set.add("/v2/api-docs");
set.add("/swagger-resources");
diff --git a/boot-web/src/main/resources/application.yml b/boot-web/src/main/resources/application.yml
index 6e48775..1fd8da9 100644
--- a/boot-web/src/main/resources/application.yml
+++ b/boot-web/src/main/resources/application.yml
@@ -12,7 +12,7 @@ spring:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springboot2?useUnicode=true&characterEncoding=utf8
username: root
- password: xwbing
+ password:
#jpa
jpa:
database: mysql
diff --git a/pom.xml b/pom.xml
index 061641b..29275aa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,12 @@
org.springframework
spring-web
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
org.springframework.boot