diff --git a/README.md b/README.md index 7cc310e..b17df3c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,8 @@ -boot 基础模板 +# youfool-framework-springboot 基础项目模板 + +## 数据源 + +当前版本(3.0版本以上)的基础框架使用了`苞米豆`的[动态数据源](https://github.com/baomidou/dynamic-datasource-spring-boot-starter) 。 + +使用事务时需注意使用`@DSTransactional`代替`@Transactional`来使用注解式事务。 diff --git a/pom.xml b/pom.xml index 66d9ff6..e54536d 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ com.chinaweal.youfool youfool-framework-springboot - 2.1.0-SNAPSHOT + 3.0.0-SNAPSHOT diff --git a/src/main/java/com/chinaweal/youfool/prj/config/PrjDataSource.java b/src/main/java/com/chinaweal/youfool/prj/config/PrjDataSource.java index fad9119..b7df0a3 100644 --- a/src/main/java/com/chinaweal/youfool/prj/config/PrjDataSource.java +++ b/src/main/java/com/chinaweal/youfool/prj/config/PrjDataSource.java @@ -1,21 +1,15 @@ package com.chinaweal.youfool.prj.config; -import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.chinaweal.youfool.framework.springboot.mybatis.plus.CommonMetaObjectHandler; -import org.apache.ibatis.session.SqlSessionFactory; -import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; -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.core.io.ClassPathResource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.annotation.Resource; import javax.sql.DataSource; @@ -25,19 +19,12 @@ import javax.sql.DataSource; */ @Configuration -@MapperScan(basePackages = {"com.chinaweal.youfool.framework.springboot.cms.**.mapper", "com.chinaweal.youfool.prj.**.mapper"}, sqlSessionTemplateRef = "prjSqlSessionTemplate") +@MapperScan(basePackages = {"com.chinaweal.youfool.framework.springboot.cms.**.mapper", "com.chinaweal.youfool.prj.**.mapper"}) public class PrjDataSource { @Resource private CommonMetaObjectHandler commonMetaObjectHandler; - @Bean(name = "prjDS", initMethod = "init", destroyMethod = "close") - @ConfigurationProperties(prefix = "spring.datasource.prj") - @Primary - public DruidDataSource dataSource() { - return DruidDataSourceBuilder.create().build(); - } - @Bean(name = "prjSqlSessionFactory") @Primary public MybatisSqlSessionFactoryBean sqlSessionFactory(@Qualifier("prjDS") DataSource dataSource) throws Exception { @@ -50,16 +37,4 @@ public class PrjDataSource { bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mybatis/mapper/**/*.xml")); return bean; } - - @Bean(name = "prjTransactionManager") - @Primary - public DataSourceTransactionManager transactionManager(@Qualifier("prjDS") DataSource dataSource) { - return new DataSourceTransactionManager(dataSource); - } - - @Bean(name = "prjSqlSessionTemplate") - @Primary - public SqlSessionTemplate sqlSessionTemplate(@Qualifier("prjSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { - return new SqlSessionTemplate(sqlSessionFactory); - } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index dcb2f15..6fddaad 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -6,7 +6,15 @@ logging: com.chinaweal.youfool.prj: debug spring: datasource: - prj: - url: jdbc:postgresql://172.22.80.157:5432/prj_template - username: postgres - password: 123456 + dynamic: + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/crgs?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=UTC + username: root + password: 123456 + driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置 + youfool: + url: jdbc:mysql://127.0.0.1:3306/aiccs?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=UTC + username: root + password: 123456 + driver-class-name: com.mysql.jdbc.Driver \ No newline at end of file diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index d108e0d..8c276d8 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -7,7 +7,15 @@ logging: filePath: D:\project\pms\logs spring: datasource: - prj: - url: jdbc:postgresql://127.0.0.1:5432/pms - username: postgres - password: 123456 \ No newline at end of file + dynamic: + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/crgs?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=UTC + username: root + password: 123456 + driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置 + youfool: + url: jdbc:mysql://127.0.0.1:3306/aiccs?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=UTC + username: root + password: 123456 + driver-class-name: com.mysql.jdbc.Driver \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f8deaa0..f39f023 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,17 +7,27 @@ spring: application: name: youfool-prj-springboot-template datasource: - #https://gitee.com/wenshao/druid/tree/master/druid-spring-boot-starter - #https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE - prj: - filters: stat - initial-size: 2 - min-idle: 1 - max-active: 20 - max-wait: 30000 - time-between-eviction-runs-millis: 60000 - min-evictable-idle-time-millis: 300000 - validation-query: select version() + dynamic: + primary: master #设置默认的数据源或者数据源组,默认值即为master + strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 + master: + filters: stat + initial-size: 2 + min-idle: 1 + max-active: 20 + max-wait: 30000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + validation-query: select version() + youfool: # 基础框架必要数据源,用于存储restLog + filters: stat + initial-size: 2 + min-idle: 1 + max-active: 20 + max-wait: 30000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + validation-query: select version() druid: web-stat-filter: enabled: true