Atitit sprbt 多数据源mltds datasource multi 目录 第一节 App cfg 1 第二节 Cfg bean 1 第三节 Use 4 第一节 App cfg
Atitit sprbt 多数据源mltds datasource multi springboot
目录
第一节 App cfg
第二节 Cfg bean
第三节 Use
- App cfg
spring.datasource.db2.jdbc-url=jdbc:sqlite:db2.db
spring.datasource.db2.driver-class-name=org.sqlite.JDBC
Note,,cant only smpl db2.url...must db2.jdbc-url=
- Cfg bean
package sprbtPKg;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
/*
* */
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import other.Log4jTet;
import util.MybatisUtilV55;
@Configuration
@ComponentScan(lazyInit = true)
@SpringBootApplication
public class Application {
public static ConfigurableApplicationContext cfgAppContext;
public static void main(String[] args) throws Exception {
Logger logger = Logger.getLogger(Log4jTet.class);
logger.info("start ...");
cfgAppContext = SpringApplication.run(Application.class, args);
}
@Bean(name = "ds2")
@ConfigurationProperties(prefix = "spring.datasource.db2")
public DataSource newhomeDbDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "sqlSessionFactoryDb2")
public SqlSessionFactory sqlSessionFactoryDb2(@Qualifier("ds2") DataSource dataSourceDb2) throws Exception {
SqlSessionFactoryBean SqlSessionFactoryBean1 = new SqlSessionFactoryBean();
SqlSessionFactoryBean1.setDataSource(dataSourceDb2);
// , mapper/**/*xMap.Mxml
Resource[] ResourceMappers = MybatisUtilV55.getRsces("classpath:mapper/**/*.xml,classpath:mapper/**/*Map.xml");
SqlSessionFactoryBean1.setMapperLocations(ResourceMappers);
return SqlSessionFactoryBean1.getObject();
}
//
// @Bean
// public SqlSessionTemplate sqlSessionTemplateDb2() throws Exception {
// return new SqlSessionTemplate(sqlSessionFactoryDb2());
// }
//
// @Autowired
// @Qualifier("ds2")
// private DataSource dataSourceDb2;
}
public static Resource[] getRsces(String mapPath) throws IOException {
Set<Resource> resourcesSet = newHashSet();
String[] paths = mapPath.split(",");
for (String pth : paths) {
Resource[] resources = new PathMatchingResourcePatternResolver().getResources(pth);
resourcesSet.addAll(Arrays.asList(resources));
}
// [file
// [C:\Users\ATI\eclipse-workspace\miniCodePrj\target\classes\mapper\rmDao.xml]
Resource[] ResourceMappers = resourcesSet.stream().toArray(Resource[]::new);
return ResourceMappers;
}
- Use
package sprbtPKg;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import other.Log4jTet;
@RestController
public class HelloController {
@Autowired
SqlSession SqlSession1;
@RequestMapping("/db")
Object db() {
Logger logger = Logger.getLogger(Log4jTet.class);
logger.info( SqlSession1.selectList("qry1","select 1 t1"));
// org.sqlite.JDBC
// return SqlSession1.selectList("qry1","select 2 t22");
SqlSessionFactory SqlSessionFactory2= (SqlSessionFactory) Application.cfgAppContext.getBean("sqlSessionFactoryDb2");
SqlSession SqlSession2=SqlSessionFactory2.openSession(true);
return SqlSession2.selectList("qry1","select 3 t33");
}
Atitit sprbt 多数据源mltds datasource multi 目录 第一节 App cfg 1 第二节 Cfg bean 1 第三节 Use 4 第一节 App cfg相关推荐
- JDBC、DriverManage、JNDI、数据源(DataSource)、连接池的区别
JDBC.DriverManage.JNDI.数据源(DataSource).连接池的区别 使用 JDBC 来访问数据库的基本流程 JDBC 与 DriverManage 数据源 JNDI 连接池 使 ...
- Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原
Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则 扩展性 第一 ...
- 数据源(DataSource)
数据源(DataSource) 制SUN制定的用于获取数据库连接的规范接口. 它存在于 javax.sql包中,用来代替 DriverManager 的方式 来获取连接. DataSource 与 D ...
- arm学习之基本汇编指令
文章目录 1. 汇编文件中的主要符号 1.1 汇编指令 1.2 伪指令 1.3 伪操作 2. 汇编指令的分类 3. 基本汇编指令语法格式 4. 数据操作指令 4.1 数据搬移指令 4.1.1 指令格式 ...
- python3 pyinstaller 打包后 程序会显示两个进程 解决方法
问题 有一个基于 flask 框架开发的 web 项目, 通过 pyinstaller -F app.py打包并运行后, 发现有 2 个进程(mac, linux, windows 都是), 刚开始以 ...
- SQL Server高可用性部署实施 SQL server 群集
SQL Server高可用性部署实施 SQL server 群集 2010-09-27 11:15:23| 分类: 数据库 | 标签:无 |字号大中小 订阅 SQL Server高可用性部署实施 ...
- cygwin编译verilator_Sublime text3 + Verilator 实现自动语法检错
参考链接: Sublime+Verilator建立强大的verilog编写环境首先肯定此文给了自己很大帮助,但基于此流程还是遇到了很多问题,所以决定把自己安装的具体流程写下来,和大家分享.避免大家走弯 ...
- 5-1 Django的路由层(urlconf)
URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码 ...
- 第一篇:Django基础
Django框架第一篇基础 一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model ...
- 安装windows2003+SQL Server2005集群
安装windows2003+SQL Server2005集群 需求场景 许多企业采用了SQL Server提供业务系统后台数据服务,以及Exchange Server提供办公系统后台协作服务,随着企业 ...
最新文章
- 「Smile」一下,轻松用Java玩转机器学习
- Tortoisegit和GitHub使用入门
- 自己动手实现山东大学QLSC_STU无线网络掉线后自动重连
- 网络协议:HTTPS
- python安装numpy模块教程_Windows系统中安装Python模块pip numpy matplotlib
- JavaSE网络编程练习
- sort目标跟踪算法
- 索尼电视android9,索尼电视系统更新通知:解决升级到安卓9.0版本后bug问题
- android HierachyViewer使用
- WBS(Work Breakdown Structure)
- win服务器文件夹加锁了,win7文件夹加锁方法
- 【MLPs+ESN】利用多层感知机MLPs对经典ESN(回声状态网络)的输出权值计算进行优化的MATLAB仿真
- Centos7安装oracle11g R2超级详细步骤
- 苍穹外卖-day02
- Twitter无法输入密码
- 基于金字塔模型的自动化测试设计
- 《关于我重装系统后修复VSCode这档事》C++环境配置
- tensorflow中的正确率是怎么来的??
- 这些有意思的女产品经理...你一定要知道
- 新概念2 课文和单词(3)
热门文章
- C++11与最小垃圾回收
- 在虚函数 声明中写override的作用
- hdfs 中chunk_HDFS读写流程
- unity打开excel表格_Unity3D读取之(二)——读取Excel文件内容
- xshell左侧导航栏_Axure教程:(初级)导航中的页面切换
- java流程控制if_[Java]Java基本语法结构(运算符,流程控制语句,if语句)
- java需要class_java需要class是什么意思
- 手机能给电脑装系统吗_使用手机给电脑装系统的方法
- 隐马尔可夫模型python_机器学习中的隐马尔科夫模型(HMM)详解
- python中基例_python | 自定义函数