當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
关于码云开源项目SpringBootAdmin多数据源配置
生活随笔
收集整理的這篇文章主要介紹了
关于码云开源项目SpringBootAdmin多数据源配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SpringBootAdmin是碼云上一個以springboot為核心的開源的后臺管理系統。
這里是鏈接地址:點擊打開鏈接
由于是后臺系統,應該采用數據庫分離,權限,用戶,角色和業務模塊分開。
application.properties
#服務端口 server.port = 8001 # ?contextPath server.context-path = / # session server.session-timeout=60 #which active #spring.profiles.active=pro logging.level.com.mys.my.mapper = DEBUG#主數據庫配置 spring.datasource.master.type = com.alibaba.druid.pool.DruidDataSource spring.datasource.master.driver-class-name = com.mysql.jdbc.Driver spring.datasource.master.name = geekcattle spring.datasource.master.url=jdbc:mysql://localhost:3306/geekcattle?useUnicode=true&characterEncoding=UTF-8 spring.datasource.master.username = root spring.datasource.master.password = 1234 spring.datasource.master.filters = stat spring.datasource.master.maxActive = 20 spring.datasource.master.initialSize = 5 spring.datasource.master.maxWait = 60000 spring.datasource.master.minIdle = 20 spring.datasource.master.timeBetweenEvictionRunsMillis = 60000 spring.datasource.master.minEvictableIdleTimeMillis = 300000 spring.datasource.master.validationQuery = select 'x' spring.datasource.master.testWhileIdle = true spring.datasource.master.testOnBorrow = false spring.datasource.master.testOnReturn = false spring.datasource.master.poolPreparedStatements = true spring.datasource.master.maxOpenPreparedStatements = 20#從數據庫配置 spring.datasource.film.type = com.alibaba.druid.pool.DruidDataSource spring.datasource.film.driver-class-name = com.mysql.jdbc.Driver spring.datasource.film.name = film spring.datasource.film.url=jdbc:mysql://localhost:3306/film?useUnicode=true&characterEncoding=UTF-8 spring.datasource.film.username = root spring.datasource.film.password = 1234 spring.datasource.film.filters = stat spring.datasource.film.maxActive = 20 spring.datasource.film.initialSize = 1 spring.datasource.film.maxWait = 60000 spring.datasource.film.minIdle = 20 spring.datasource.film.timeBetweenEvictionRunsMillis = 60000 spring.datasource.film.minEvictableIdleTimeMillis = 300000 spring.datasource.film.validationQuery = select 'x' spring.datasource.film.testWhileIdle = true spring.datasource.film.testOnBorrow = false spring.datasource.film.testOnReturn = false spring.datasource.film.poolPreparedStatements = true spring.datasource.film.maxOpenPreparedStatements = 20#MVC spring.mvc.view.prefix = classpath:/templates/ spring.mvc.view.suffix = .html spring.mvc.date-format=yyyy-MM-dd HH:mm:ss # spring.thymeleaf.mode = HTML5 spring.thymeleaf.cache = false spring.thymeleaf.encoding = UTF-8 spring.thymeleaf.content-type = text/html #mybaties spring.mapper.plugin = tk.mybatis.mapper.generator.MapperPlugin spring.mapper.Mapper = com.mys.my.util.CustomerMapper #json spring.jackson.time-zone=Asia/Chongqing spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.joda-date-time-format=yyyy-MM-dd HH:mm:ss# Redis數據庫索引(默認為0) spring.redis.database=1 # Redis服務器地址 spring.redis.host= # Redis服務器連接端口 spring.redis.port=6379 # Redis服務器連接密碼(默認為空) spring.redis.password= # 連接池最大連接數(使用負值表示沒有限制) spring.redis.pool.max-active=30 # 超時時間 spring.redis.timeout=100000 # 連接池中的最大空閑連接 spring.redis.pool.max-idle=20 # 連接池最大阻塞等待時間(使用負值表示沒有限制) spring.redis.pool.max-wait=-1MyBatisConfig.java
/** Copyright (c) 2017 <l_iupeiyu@qq.com> All rights reserved.*/package com.mys.my.conf;import java.sql.Connection; import java.sql.SQLException; import java.util.Properties;import javax.sql.DataSource;import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; 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 org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.TransactionManagementConfigurer;import com.github.pagehelper.PageHelper; /*** MyBatis基礎配置*/ @Configuration @PropertySource("classpath:application.properties") //@EnableTransactionManagement public class MyBatisConfig {// @Autowired // DataSource dataSource;@Bean(name="masterDataSource")@ConfigurationProperties(prefix = "spring.datasource.master")@Primary//默認數據源public DataSource dataSource() {System.out.println("======================================"+DataSourceBuilder.create().build());return DataSourceBuilder.create().build();}@Bean(name="masterSqlSessionFactory")@Primary//默認數據源public SqlSessionFactory sqlSessionFactoryBean(@Qualifier("masterDataSource") DataSource dataSource) throws SQLException {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();System.out.println("dataSource===================================================="+dataSource);bean.setDataSource(dataSource);bean.setTypeAliasesPackage("com.mys.my.model");//分頁插件PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("reasonable", "true");properties.setProperty("supportMethodsArguments", "true");properties.setProperty("returnPageInfo", "check");properties.setProperty("params", "count=countSql");pageHelper.setProperties(properties);//添加插件bean.setPlugins(new Interceptor[]{pageHelper});//添加XML目錄ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();try {bean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));bean.setMapperLocations(resolver.getResources("classpath:mapper/*/*.xml"));return bean.getObject();} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}@Bean("masterSqlSessionTemplate")@Primarypublic SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}@Bean("masterTransactionManager")@Primarypublic PlatformTransactionManager annotationDrivenTransactionManager(@Qualifier("masterDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);} } 新建一個數據庫配置文件 MyBatisConfigFilm.java /** Copyright (c) 2017 <l_iupeiyu@qq.com> All rights reserved.*/package com.mys.my.conf;import java.sql.SQLException; import java.util.Properties;import javax.sql.DataSource;import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.PlatformTransactionManager;import com.github.pagehelper.PageHelper; /*** MyBatis基礎配置*/ @Configuration @MapperScan(basePackages={"com.mys.my.mapper.fiz"},sqlSessionFactoryRef="filmSqlSessionFactory") public class MyBatisConfigFilm{@Bean(name="filmDatasource")@ConfigurationProperties(prefix = "spring.datasource.film")public DataSource dataSource() {System.out.println("======================================"+DataSourceBuilder.create().build());return DataSourceBuilder.create().build();}@Bean(name="filmSqlSessionFactory")public SqlSessionFactory sqlSessionFactoryBean(@Qualifier("filmDatasource") DataSource dataSource) throws SQLException {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();System.out.println("dataSource===================================================="+dataSource());bean.setDataSource(dataSource());bean.setTypeAliasesPackage("com.mys.my.pojo");//分頁插件PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("reasonable", "true");properties.setProperty("supportMethodsArguments", "true");properties.setProperty("returnPageInfo", "check");properties.setProperty("params", "count=countSql");pageHelper.setProperties(properties);//添加插件bean.setPlugins(new Interceptor[]{pageHelper});//添加XML目錄ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();try { // bean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));bean.setMapperLocations(resolver.getResources("classpath:mapper/fiz/*.xml"));return bean.getObject();} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}@Bean("filmSqlSessionTemplate")public SqlSessionTemplate sqlSessionTemplate(@Qualifier("filmSqlSessionFactory")SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}@Bean(name = "filmTransactionManager")public PlatformTransactionManager annotationDrivenTransactionManager(@Qualifier("filmDatasource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource());} }@MapperScan(basePackages={"com.mys.my.mapper.fiz"}的配置是掃描配置的dao文件 *.java
bean.setMapperLocations(resolver.getResources("classpath:mapper/fiz/*.xml"));
這個配置是掃描對應的mapper文件 *.xml。
MyBatisMapperScannerConfig.java
/** Copyright (c) 2017 <l_iupeiyu@qq.com> All rights reserved.*/package com.mys.my.conf;import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;//import com.mys.my.mapper.dataSource.MyFilmDatasource;import tk.mybatis.spring.mapper.MapperScannerConfigurer;import java.util.Properties;/*** MyBatis掃描接口,使用的tk.mybatis.spring.mapper.MapperScannerConfigurer,如果你不使用通用Mapper*/ @Configuration //TODO 注意,由于MapperScannerConfigurer執行的比較早,所以必須有下面的注解 @AutoConfigureAfter(MyBatisConfig.class) public class MyBatisMapperScannerConfig {@Beanpublic MapperScannerConfigurer mapperScannerConfigurer() {MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();mapperScannerConfigurer.setSqlSessionFactoryBeanName("masterSqlSessionFactory");mapperScannerConfigurer.setSqlSessionTemplateBeanName("masterSqlSessionTemplate");mapperScannerConfigurer.setBasePackage("com.mys.my.mapper");Properties properties = new Properties();properties.setProperty("mappers", "com.mys.my.util.CustomerMapper");properties.setProperty("notEmpty", "false");properties.setProperty("IDENTITY", "MYSQL");mapperScannerConfigurer.setProperties(properties);return mapperScannerConfigurer;} }總結
以上是生活随笔為你收集整理的关于码云开源项目SpringBootAdmin多数据源配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单数独
- 下一篇: 从0开始学Java——JSPServle