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相关推荐

  1. JDBC、DriverManage、JNDI、数据源(DataSource)、连接池的区别

    JDBC.DriverManage.JNDI.数据源(DataSource).连接池的区别 使用 JDBC 来访问数据库的基本流程 JDBC 与 DriverManage 数据源 JNDI 连接池 使 ...

  2. Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原

    Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则  扩展性 第一 ...

  3. 数据源(DataSource)

    数据源(DataSource) 制SUN制定的用于获取数据库连接的规范接口. 它存在于 javax.sql包中,用来代替 DriverManager 的方式 来获取连接. DataSource 与 D ...

  4. arm学习之基本汇编指令

    文章目录 1. 汇编文件中的主要符号 1.1 汇编指令 1.2 伪指令 1.3 伪操作 2. 汇编指令的分类 3. 基本汇编指令语法格式 4. 数据操作指令 4.1 数据搬移指令 4.1.1 指令格式 ...

  5. python3 pyinstaller 打包后 程序会显示两个进程 解决方法

    问题 有一个基于 flask 框架开发的 web 项目, 通过 pyinstaller -F app.py打包并运行后, 发现有 2 个进程(mac, linux, windows 都是), 刚开始以 ...

  6. SQL Server高可用性部署实施 SQL server 群集

    SQL Server高可用性部署实施 SQL server 群集 2010-09-27 11:15:23|  分类: 数据库 |  标签:无 |字号大中小 订阅 SQL Server高可用性部署实施 ...

  7. cygwin编译verilator_Sublime text3 + Verilator 实现自动语法检错

    参考链接: Sublime+Verilator建立强大的verilog编写环境首先肯定此文给了自己很大帮助,但基于此流程还是遇到了很多问题,所以决定把自己安装的具体流程写下来,和大家分享.避免大家走弯 ...

  8. 5-1 Django的路由层(urlconf)

    URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码 ...

  9. 第一篇:Django基础

    Django框架第一篇基础 一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model ...

  10. 安装windows2003+SQL Server2005集群

    安装windows2003+SQL Server2005集群 需求场景 许多企业采用了SQL Server提供业务系统后台数据服务,以及Exchange Server提供办公系统后台协作服务,随着企业 ...

最新文章

  1. 「Smile」一下,轻松用Java玩转机器学习
  2. Tortoisegit和GitHub使用入门
  3. 自己动手实现山东大学QLSC_STU无线网络掉线后自动重连
  4. 网络协议:HTTPS
  5. python安装numpy模块教程_Windows系统中安装Python模块pip numpy matplotlib
  6. JavaSE网络编程练习
  7. sort目标跟踪算法
  8. 索尼电视android9,索尼电视系统更新通知:解决升级到安卓9.0版本后bug问题
  9. android HierachyViewer使用
  10. WBS(Work Breakdown Structure)
  11. win服务器文件夹加锁了,win7文件夹加锁方法
  12. 【MLPs+ESN】利用多层感知机MLPs对经典ESN(回声状态网络)的输出权值计算进行优化的MATLAB仿真
  13. Centos7安装oracle11g R2超级详细步骤
  14. 苍穹外卖-day02
  15. Twitter无法输入密码
  16. 基于金字塔模型的自动化测试设计
  17. 《关于我重装系统后修复VSCode这档事》C++环境配置
  18. tensorflow中的正确率是怎么来的??
  19. 这些有意思的女产品经理...你一定要知道
  20. 新概念2 课文和单词(3)

热门文章

  1. C++11与最小垃圾回收
  2. 在虚函数 声明中写override的作用
  3. hdfs 中chunk_HDFS读写流程
  4. unity打开excel表格_Unity3D读取之(二)——读取Excel文件内容
  5. xshell左侧导航栏_Axure教程:(初级)导航中的页面切换
  6. java流程控制if_[Java]Java基本语法结构(运算符,流程控制语句,if语句)
  7. java需要class_java需要class是什么意思
  8. 手机能给电脑装系统吗_使用手机给电脑装系统的方法
  9. 隐马尔可夫模型python_机器学习中的隐马尔科夫模型(HMM)详解
  10. python中基例_python | 自定义函数