springboot集成多数据源代码
来源:互联网 发布:58中国经纪人网络平台 编辑:程序博客网 时间:2024/06/06 01:20
(1) 启动类代码
Apppackage com.app;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
//扫描包结构
@ComponentScan(basePackages={"com.controller","com.datasources.test1","com.datasources.test2","com.data"})
@SpringBootApplication//启动注解
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
(2)com.data下对应的配置数据源的连接代码
1.TestData的代码(1)
package com.data;
import javax.sql.DataSource;
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.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
@Configuration//注入spring容器中
@MapperScan(basePackages="com.datasources.test1",sqlSessionFactoryRef="testsqlSessionFactory")//扫描数据源的包结构
public class TestData {
@Bean(name="test1DataSource")
@ConfigurationProperties(prefix="spring.datasource.test1")//指定哪一个数据源
public DataSource testDataSource(){
return DataSourceBuilder.create().build();
}
@Bean(name="testsqlSessionFactory")
public SqlSessionFactory testsqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception{
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
/*
*
*
* 配置一些分页信息
* bean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/*.xml")
);*/
return bean.getObject();
}
@Bean(name="test1Transaction")
public DataSourceTransactionManager testTransaction(@Qualifier("test1DataSource") DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
@Bean(name="test1sqlSessionTeplate")
public SqlSessionTemplate testsqlSessionTeplate(@Qualifier("testsqlSessionFactory") SqlSessionFactory sqlSessionFactory ) throws Exception{
return new SqlSessionTemplate(sqlSessionFactory);
}
}
//配置信息如同appliction.xml信息类似
2.TestData2类
package com.data;
import javax.sql.DataSource;
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.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
@Configuration//注入spring容器中
@MapperScan(basePackages="com.datasources.test2",sqlSessionFactoryRef="test2sqlSessionFactory")//扫描数据源的包结构
public class TestData2 {
@Bean(name="test2DataSource")
@ConfigurationProperties(prefix="spring.datasource.test2")//指定哪一个数据源信息
@Primary
public DataSource testDataSource(){
return DataSourceBuilder.create().build();
}
@Bean(name="test2sqlSessionFactory")
@Primary
public SqlSessionFactory testsqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception{
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
/*
*
*
* 配置一些分页信息
* bean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/*.xml")
);*/
return bean.getObject();
}
@Bean(name="test2Transaction")
@Primary
public DataSourceTransactionManager testTransaction(@Qualifier("test2DataSource") DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
@Bean(name="test2sqlSessionTeplate")
@Primary
public SqlSessionTemplate testsqlSessionTeplate(@Qualifier("test2sqlSessionFactory") SqlSessionFactory sqlSessionFactory ) throws Exception{
return new SqlSessionTemplate(sqlSessionFactory);
}
}
(3)数据源连接信息application.properties
spring.mvc.view.prefix =/WEB-INF/view/
spring.mvc.view.suffix = .jsp
#spring.datasource.test1自定义连接数据源
spring.datasource.test1.url=jdbc:mysql://localhost/test1
spring.datasource.test1.username=root
spring.datasource.test1.password=root
spring.datasource.test1.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.test2自定义连接数据源
spring.datasource.test2.url=jdbc:mysql://localhost/test2
spring.datasource.test2.username=root
spring.datasource.test2.password=root
spring.datasource.test2.driver-class-name=com.mysql.jdbc.Driver
(4)com.datasources.test1包下的的代码
//mapper层
package com.datasources.test1.mapping;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import com.pojo.User;
public interface UserMapping {
@Insert("insert into t_user(id,name) values(#{id},#{name})")
public int getinserts(@Param("id") Integer id,@Param("name") String name);
}
//service层
package com.datasources.test1.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.datasources.test1.mapping.UserMapping;
@Service
public class UserService {
@Autowired
private UserMapping usermapping;
public int getinserts(Integer id,String name){
return usermapping.getinserts(id, name);
}
}
(4)com.datasources.test2包下的的代码
//mapper层
package com.datasources.test2.mapping;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import com.pojo.User;
public interface User2Mapping {
@Insert("insert into t_user(id,name) values(#{id},#{name})")
public int getinsert(@Param("id") Integer id,@Param("name") String name);
}
//service层
package com.datasources.test2.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.datasources.test1.mapping.UserMapping;
import com.datasources.test2.mapping.User2Mapping;
@Service
public class User2Service {
@Autowired
private User2Mapping user2mapping;
public int getinsert(Integer id,String name){
return user2mapping.getinsert(id, name);
}
}
(5)注意controller层
package com.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.datasources.test1.service.UserService;
import com.datasources.test2.service.User2Service;
/*import com.mapper.UserMapper;*/
import com.pojo.User;
@RestController
public class UserController {
@Autowired
private UserService userService;
@Autowired
private User2Service user2Service;
@RequestMapping("/add")
public String add(){
userService.getinserts(5, "kkk");
user2Service.getinsert(6, "bb");
return "scuess";
}
其下运行后效果图
- springboot集成多数据源代码
- SpringBoot集成多数据源
- 七.SpringBoot集成实例系列-多数据源mongodb(一)
- springboot 多数据源
- springboot多数据源
- 二.SpringBoot集成实例系列-xml型多数据源mybatis
- 四.SpringBoot集成实例系列-注解型多数据源mybatis
- 七.SpringBoot集成实例系列-多数据源mongodb+lombok(二)
- springboot 配置多数据源
- springboot 配置多数据源
- SpringBoot-SpringData-多数据源
- springboot 多数据源配置
- springboot + mybatis + 多数据源
- SpringBoot+Mybatis多数据源
- springboot + mybatis + 多数据源
- springboot 多数据源问题
- Springboot 多数据源配置
- SpringBoot配置多数据源
- JVM必知必会(二)【内存模型】
- 几种常用的认证机制
- CSS实现图片向上浮动
- mybatis动态sql根据java枚举判断不执行,执行otherwise,解决办法
- 正态分布-R语言
- springboot集成多数据源代码
- Android Studio无法创建类和接口
- RabbitMQ入门教程(十):队列声明queueDeclare
- 关于二叉树的知识点汇总
- 09.创新机遇来源七:新知识
- 经典题型
- Java中的泛型
- Spring学习之(四)依赖注入的几种装配方式
- 操作符重载