當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
关于码云开源项目SpringBootAdmin多数据源配置
生活随笔
收集整理的這篇文章主要介紹了
关于码云开源项目SpringBootAdmin多数据源配置
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
SpringBootAdmin是碼云上一個(gè)以springboot為核心的開(kāi)源的后臺(tái)管理系統(tǒng)。
這里是鏈接地址:點(diǎn)擊打開(kāi)鏈接
由于是后臺(tái)系統(tǒng),應(yīng)該采用數(shù)據(jù)庫(kù)分離,權(quán)限,用戶,角色和業(yè)務(wù)模塊分開(kāi)。
application.properties
#服務(wù)端口 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#主數(shù)據(jù)庫(kù)配置 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#從數(shù)據(jù)庫(kù)配置 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數(shù)據(jù)庫(kù)索引(默認(rèn)為0) spring.redis.database=1 # Redis服務(wù)器地址 spring.redis.host= # Redis服務(wù)器連接端口 spring.redis.port=6379 # Redis服務(wù)器連接密碼(默認(rèn)為空) spring.redis.password= # 連接池最大連接數(shù)(使用負(fù)值表示沒(méi)有限制) spring.redis.pool.max-active=30 # 超時(shí)時(shí)間 spring.redis.timeout=100000 # 連接池中的最大空閑連接 spring.redis.pool.max-idle=20 # 連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒(méi)有限制) 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基礎(chǔ)配置*/ @Configuration @PropertySource("classpath:application.properties") //@EnableTransactionManagement public class MyBatisConfig {// @Autowired // DataSource dataSource;@Bean(name="masterDataSource")@ConfigurationProperties(prefix = "spring.datasource.master")@Primary//默認(rèn)數(shù)據(jù)源public DataSource dataSource() {System.out.println("======================================"+DataSourceBuilder.create().build());return DataSourceBuilder.create().build();}@Bean(name="masterSqlSessionFactory")@Primary//默認(rèn)數(shù)據(jù)源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");//分頁(yè)插件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});//添加X(jué)ML目錄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);} } 新建一個(gè)數(shù)據(jù)庫(kù)配置文件 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基礎(chǔ)配置*/ @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");//分頁(yè)插件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});//添加X(jué)ML目錄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"));
這個(gè)配置是掃描對(duì)應(yīng)的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執(zhí)行的比較早,所以必須有下面的注解 @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;} }總結(jié)
以上是生活随笔為你收集整理的关于码云开源项目SpringBootAdmin多数据源配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 简单数独
- 下一篇: gradle idea java ssm