diff --git a/boot-service/pom.xml b/boot-service/pom.xml
index 3db342c..5e074a8 100644
--- a/boot-service/pom.xml
+++ b/boot-service/pom.xml
@@ -33,7 +33,17 @@
spring-boot-starter-mail
-
+
+ com.alibaba
+ druid-spring-boot-starter
+ ${druid-version}
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
org.springframework.boot
spring-boot-starter-data-jpa
@@ -43,15 +53,15 @@
-
- com.alibaba
- druid
- ${druid-version}
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 1.3.0
-
- mysql
- mysql-connector-java
- runtime
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.1.2
@@ -129,4 +139,19 @@
spring-boot-starter-amqp
+
+
+
+
+ org.mybatis.generator
+ mybatis-generator-maven-plugin
+ 1.3.2
+
+ ${basedir}/src/main/resources/generator/generatorConfig.xml
+ true
+ true
+
+
+
+
\ No newline at end of file
diff --git a/boot-service/src/main/java/com/xwbing/datasource/JpaDataSourceConfig.java b/boot-service/src/main/java/com/xwbing/datasource/JpaDataSourceConfig.java
new file mode 100644
index 0000000..5e7bdc8
--- /dev/null
+++ b/boot-service/src/main/java/com/xwbing/datasource/JpaDataSourceConfig.java
@@ -0,0 +1,27 @@
+package com.xwbing.datasource;
+
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.PropertySource;
+
+import javax.sql.DataSource;
+
+/**
+ * 项目名称: boot-module-demo
+ * 创建时间: 2018/5/31 21:38
+ * 作者: xiangwb
+ * 说明:
+ */
+@Configuration
+@PropertySource("classpath:druid.properties")
+public class JpaDataSourceConfig {
+ @Bean(name="")
+ @Primary
+ @ConfigurationProperties("db1")
+ public DataSource primaryDataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+}
diff --git a/boot-service/src/main/java/com/xwbing/datasource/MybatisDataSourceConfig.java b/boot-service/src/main/java/com/xwbing/datasource/MybatisDataSourceConfig.java
new file mode 100644
index 0000000..1d35566
--- /dev/null
+++ b/boot-service/src/main/java/com/xwbing/datasource/MybatisDataSourceConfig.java
@@ -0,0 +1,48 @@
+package com.xwbing.datasource;
+
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+
+/**
+ * 说明: 德鲁伊数据源配置。监控地址:datasource/index.html
+ * 项目名称: boot-module-demo
+ * 创建时间: 2017/12/10 16:36
+ * 作者: xiangwb
+ */
+@Configuration
+@MapperScan(basePackages = "", sqlSessionFactoryRef = "mybatisSqlSessionFactory")
+@PropertySource("classpath:druid.properties")
+public class MybatisDataSourceConfig {
+ private final Logger logger = LoggerFactory.getLogger(MybatisDataSourceConfig.class);
+
+ @Bean(name = "mybatisDatasource")
+ @ConfigurationProperties("db2")
+ public DataSource dataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+ @Bean(name = "mybatisSqlSessionFactory")
+ public SqlSessionFactory sqlSessionFactory() throws Exception {
+ SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
+ sqlSessionFactoryBean.setDataSource(dataSource());
+ sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
+ return sqlSessionFactoryBean.getObject();
+ }
+
+ @Bean(name = "mybatisTransactionManager")
+ public DataSourceTransactionManager dataSourceTransactionManager() {
+ return new DataSourceTransactionManager(dataSource());
+ }
+}
diff --git a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceConfig.java b/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceConfig.java
deleted file mode 100644
index 433cf3d..0000000
--- a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceConfig.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.xwbing.druid;
-
-import com.alibaba.druid.pool.DruidDataSource;
-import com.alibaba.druid.support.http.StatViewServlet;
-import com.alibaba.druid.support.http.WebStatFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-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;
-import org.springframework.context.annotation.Primary;
-
-import javax.annotation.Resource;
-import java.sql.SQLException;
-
-/**
- * 说明: 德鲁伊数据源配置。监控地址:druid/index.html
- * 项目名称: boot-module-demo
- * 创建时间: 2017/12/10 16:36
- * 作者: xiangwb
- */
-@Configuration
-@EnableConfigurationProperties(DruidDataSourceModel.class)
-public class DruidDataSourceConfig {
- @Resource
- private DruidDataSourceModel druidDataSourceModel;
- private final Logger logger = LoggerFactory.getLogger(DruidDataSourceConfig.class);
-
- @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) {
- logger.error("配置druid过滤器异常");
- }
- return dataSource;
- }
-
- @Bean
- public ServletRegistrationBean statViewServlet() {
- logger.info("注册druid监控信息显示statViewServlet ======================= ");
- ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
- registration.addUrlMappings("/druid/*");
- //添加初始化参数:initParams
-// registration.addInitParameter("allow", "127.0.0.1");//IP白名单(没有配置或者为空,则允许所有访问)
-// registration.addInitParameter("deny", "172.17.21.232");//IP黑名单(存在共同时,deny优先于allow)
- registration.addInitParameter("loginUsername", "admin");//用户名
- registration.addInitParameter("loginPassword", "123456");//密码
- registration.addInitParameter("resetEnable", "true");//禁用HTML页面上的"Reset All"功能
- return registration;
- }
-
- @Bean
- public FilterRegistrationBean webStatFilter() {
- logger.info("注册druid监控信息采集webStatFilter ======================= ");
- FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
- filterRegistrationBean.addUrlPatterns("/*");
- filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*");
- filterRegistrationBean.addInitParameter("profileEnable", "true");//监控单个url调用的sql列表
- return filterRegistrationBean;
- }
-}
diff --git a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceModel.java b/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceModel.java
deleted file mode 100644
index 7bc633e..0000000
--- a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceModel.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.xwbing.druid;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.stereotype.Component;
-
-/**
- * 说明: 德鲁伊数据源参数模型
- * 项目名称: boot-module-demo
- * 创建时间: 2017/5/10 16:36
- * 作者: xiangwb
- */
-@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;
- /**
- * 用来检测连接是否有效的sql,要求是一个查询语句
- */
- private String validationQuery;
- /**
- * 申请连接的时候检测
- */
- private boolean testWhileIdle;
- /**
- * 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能
- */
- private boolean testOnBorrow;
- /**
- * 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能
- */
- private boolean testOnReturn;
- /**
- * 打开PSCache,mysql5.5以下的版本中没有PSCache功能,建议关闭掉
- */
- private boolean poolPreparedStatements;
- /**
- * 指定每个连接上PSCache的大小
- */
- private int maxPoolPreparedStatementPerConnectionSize;
- /**
- * 配置监控统计拦截的filters
- */
- private String filters;
- /**
- * 慢SQL记录
- */
- private String connectionProperties;
- /**
- * 合并多个DruidDataSource的监控数据
- */
- private boolean useGlobalDataSourceStat;
-}
diff --git a/boot-service/src/main/resources/druid.properties b/boot-service/src/main/resources/druid.properties
index bab36ca..9fa6dee 100644
--- a/boot-service/src/main/resources/druid.properties
+++ b/boot-service/src/main/resources/druid.properties
@@ -1,29 +1,83 @@
-# 数据库基本信息配置
-jdbc.driver=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://127.0.0.1:3306/xwbing?useUnicode=true&characterEncoding=utf8&useSSL=false
-jdbc.username=root
-jdbc.password=xwbing
+##jdbc配置#####################################
+db1.driver-class-name=com.mysql.jdbc.Driver
+db1.url=jdbc:mysql://127.0.0.1:3306/xwbing?useUnicode=true&characterEncoding=utf8&useSSL=false
+db1.username=root
+db1.password=xwbing
+##连接池配置###############################
# 初始化大小,最小,最大
-jdbc.initSize=1
-jdbc.minIdle=3
-jdbc.maxActive=20
+db1.initial-size=1
+db1.min-idle=3
+db1.max-active=20
# 获取连接最大等待时间
-jdbc.maxWait=60000
+db1.max-wait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-jdbc.timeBetweenEvictionRunsMillis=60000
+db1.time-between-eviction-runs-millis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
-jdbc.minEvictableIdleTimeMillis=30000
+db1.min-evictable-idle-time-millis=30000
# 连接性能检测(用来检测连接是否有效的sql,为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用)
-jdbc.validationQuery=SELECT 'x'
-jdbc.testWhileIdle=true
-jdbc.testOnBorrow=false
-jdbc.testOnReturn=false
+db1.validation-query=SELECT 'x'
+db1.test-while-idle=true
+db1.test-on-borrow=false
+db1.test-on-return=false
# 打开PSCache,并且指定每个连接上PSCache的大小 ,mysql5.5以下的版本中没有PSCache功能,建议关闭掉
-jdbc.poolPreparedStatements=true
-jdbc.maxPoolPreparedStatementPerConnectionSize=20
+db1.pool-prepared-statements=true
+db1.max-pool-prepared-statement-per-connection-size=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙,防止sql注入
-jdbc.filters=stat,wall,slf4j
+db1.filters=stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
-jdbc.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+db1.connect-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
-#jdbc.useGlobalDataSourceStat=true
\ No newline at end of file
+#datasource.useGlobalDataSourceStat=true
+##WebStatFilter配置###################################
+db1.web-stat-filter.enabled=false
+db1.web-stat-filter.url-pattern=/*
+db1.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
+#sesison统计
+db1.web-stat-filter.session-stat-enable=true
+db1.web-stat-filter.session-stat-max-count=1000
+db1.web-stat-filter.principal-session-name=
+db1.web-stat-filter.principal-cookie-name=
+#监控单个url调用的sql列表
+db1.web-stat-filter.profile-enable=true
+##StatViewServlet配置###############################
+db1.stat-view-servlet.enabled=true
+db1.stat-view-servlet.url-pattern=/druid/*
+#禁用HTML页面上的"Reset All"功能
+db1.stat-view-servlet.reset-enable=true
+db1.stat-view-servlet.login-username=admin
+db1.stat-view-servlet.login-password=123456
+#IP白名单(没有配置或者为空,则允许所有访问)
+db1.stat-view-servlet.allow=
+#IP黑名单(存在共同时,deny优先于allow)
+db1.stat-view-servlet.deny=
+###########################################################################################################
+##jdbc配置#####################################
+db2.driver-class-name=com.mysql.jdbc.Driver
+db2.url=jdbc:mysql://127.0.0.1:3306/xwbing?useUnicode=true&characterEncoding=utf8&useSSL=false
+db2.username=root
+db2.password=xwbing
+##连接池配置###############################
+# 初始化大小,最小,最大
+db2.initial-size=1
+db2.min-idle=3
+db2.max-active=20
+# 获取连接最大等待时间
+db2.max-wait=60000
+# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+db2.time-between-eviction-runs-millis=60000
+# 配置一个连接在池中最小生存的时间,单位是毫秒
+db2.min-evictable-idle-time-millis=30000
+# 连接性能检测(用来检测连接是否有效的sql,为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用)
+db2.validation-query=SELECT 'x'
+db2.test-while-idle=true
+druid.db2.test-on-borrow=false
+db2.test-on-return=false
+# 打开PSCache,并且指定每个连接上PSCache的大小 ,mysql5.5以下的版本中没有PSCache功能,建议关闭掉
+db2.pool-prepared-statements=true
+db2.max-pool-prepared-statement-per-connection-size=20
+# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙,防止sql注入
+db2.filters=stat,wall,slf4j
+# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+db2.connect-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+# 合并多个DruidDataSource的监控数据
+#datasource.useGlobalDataSourceStat=true
\ No newline at end of file
diff --git a/boot-web/src/main/java/com/xwbing/Application.java b/boot-web/src/main/java/com/xwbing/Application.java
index 711acd3..6605451 100644
--- a/boot-web/src/main/java/com/xwbing/Application.java
+++ b/boot-web/src/main/java/com/xwbing/Application.java
@@ -2,6 +2,7 @@ package com.xwbing;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* 项目名称: boot-module-demo
@@ -11,6 +12,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*/
//@EnableRabbit
@SpringBootApplication
+@EnableTransactionManagement
//@Configuration 定义为配置类,相当于xml文件中的
//@ComponentScan 组件扫描
//@EnableAutoConfiguration 借助@Import的帮助,将所有符合自动配置条件的bean定义加载到IoC容器
diff --git a/boot-web/src/main/resources/application.yml b/boot-web/src/main/resources/application.yml
index ac60238..c4ab006 100644
--- a/boot-web/src/main/resources/application.yml
+++ b/boot-web/src/main/resources/application.yml
@@ -59,6 +59,10 @@ spring:
cache:
channel:
size: 1
+#mybatis
+mybatis:
+ mapper-locations:
+ config-location:
#log
logging:
config: classpath:log4j2.xml
diff --git a/pom.xml b/pom.xml
index 62b0f5b..983a825 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,7 +44,7 @@
1.45
2.2
1.0
- 1.1.5
+ 1.1.10
3.14
4.5.1