SpringBoot 设置多数据源访问
2017-10-10 08:58
501 查看
1、添加maven依赖注入
2、修改application.yml配置文件
3、多数据源配置
注解 备注
@Primary 优先方案,被注解的实现,优先被注入
@Qualifier 先声明后使用,相当于多个实现起多个不同的名字,注入时候告诉我你要注入哪个
4、单元测试多数据源
5、测试结果
<!--properties所需依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
2、修改application.yml配置文件
mysql-logic-db: name: logic driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.1.113:3306/test1?useUnicode=true&characterEncoding=utf-8 username: root password: root mysql-dao-db: name: dao driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.1.113:3306/test2?useUnicode=true&characterEncoding=utf-8 username: root password: root
3、多数据源配置
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 javax.sql.DataSource; /** * 多数据源配置(mysql,oracle) * @author 陈梓平 * @date 2017/9/27. */ @Configuration public class MultipleDBConfig { @Bean(name = "mysqlDB_logic") @Primary @ConfigurationProperties(prefix = "mysql-logic-db") public DataSource mysqlLogicDataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "mysqlDB_dao") @ConfigurationProperties(prefix = "mysql-dao-db") public DataSource mysqlDAODataSource() { return DataSourceBuilder.create().build(); } }
注解 备注
@Primary 优先方案,被注解的实现,优先被注入
@Qualifier 先声明后使用,相当于多个实现起多个不同的名字,注入时候告诉我你要注入哪个
4、单元测试多数据源
/** * 单元测试多数据源 * @author 陈梓平 * @date 2017/9/27. */ @RunWith(SpringRunner.class) @SpringBootTest public class TestMultipleDB { private Logger logger = LoggerFactory.getLogger(TestMultipleDB.class); @Autowired @Qualifier("mysqlDB_logic") private DataSource mysqlDB_logic; @Autowired @Qualifier("mysqlDB_dao") private DataSource mysqlDB_dao; @Test public void testMysqlDB_logic() throws SQLException { if (mysqlDB_logic!=null){ Connection connection = mysqlDB_logic.getConnection(); PreparedStatement ppst = null; ResultSet rs = null; ppst = connection.prepareStatement("SELECT id FROM journal"); rs = ppst.executeQuery(); List<String> list = new ArrayList<>(); while (rs.next()) { list.add( rs.getString(1)); } logger.info("size="+list.size()); } } @Test public void testMysqlDB_dao() throws SQLException { if (mysqlDB_dao!=null){ Connection connection = mysqlDB_dao.getConnection(); PreparedStatement ppst = null; ResultSet rs = null; ppst = connection.prepareStatement("SELECT nId FROM news"); rs = ppst.executeQuery(); List<String> list = new ArrayList<>(); while (rs.next()) { list.add( rs.getString(1)); } logger.info("size="+list.size()); } } }
5、测试结果
相关文章推荐
- SpringBoot设置静态资源访问目录
- springboot(2)-springboot中的配置文件设置之(修改访问端口和访问路径)
- springboot 设置跨域访问
- springboot + mybaties 多数据源设置
- Spring Boot 设置静态资源访问
- springboot redis多数据源设置
- springboot redis多数据源设置
- Spring Boot 设置静态资源访问
- 关于Spring Boot下Spring Security权限访问设置@PreAuthorize("hasRole('ROLE_ADMIN')")没有用
- springboot+mybatis数据源的读写分离(mysql,后期连接设置,前期项目没做好的忽入会蒙的)
- 通过Spring Boot配置动态数据源访问多个数据库的实现代码
- 为spring-boot-admin配置spring security(用于控制访问)
- (42)Spring Boot多数据源【从零开始学Spring Boot】
- Spring Boot 集成Mybatis实现主从(多数据源)分离方案示例
- Springboot--多数据源读写分离和主库数据源service层事务控制
- Spring Boot HikariCP集成多数据源
- 关于springboot正常启动,路由却无法正常访问的问题
- springboot踩坑记--springboot正常启动但访问404
- springboot(十三)多数据源分布式事物管理