springboot 如何配置多个jndi数据源
作者:UziNb 时间:2023-03-13 16:28:07
springboot 配置多个jndi数据源
1.在application.properties中,添加jndi配置
如下图
2.新建dataSourceConfig类
3.dataSourceConfig类详细代码
这里只贴出其中一个,多个数据源类似配置,只需更改 basePackages 路径和 @Value("${spring.datasource.source1.jndi-name}"),以及下面名称带test1前缀的地方,不要和其他dataSourceConfig重名
@Configuration //注册到springboot 容器中
@MapperScan(basePackages = "对应的Mapper包路径",sqlSessionTemplateRef = "test1SqlSessionTemplate")
public class DataSource1Config {
//application.properties中的jndi名称
@Value("${spring.datasource.source1.jndi-name}")
private String jndiName;
@Bean(name = "test1DataSource",destroyMethod = "") // destroy method is disabled for Weblogic update app ability
@ConfigurationProperties(prefix = "spring.datasource.bigdata")
public DataSource bigdataDs() throws NamingException {
JndiObjectFactoryBean bean=new JndiObjectFactoryBean();
bean.setJndiName(jndiName);
bean.setProxyInterface(DataSource.class);
bean.setLookupOnStartup(false);
bean.afterPropertiesSet();
return (DataSource) bean.getObject();
}
@Bean(name = "test1SqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
//加载其他文件,如mapper.xml
// bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test1/*.xml"));
return bean.getObject();
}
//事务管理
@Bean(name = "test1TransactionManager")
public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "test1SqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
4.打开tomcat目录下context.xml文件
添加以下配置,多个数据源写多个Resource即可,注意name需要和application.properties配置的名称一致
<Resource name="jdbc/数据库名称" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest"/>
来源:https://blog.csdn.net/qq_37030399/article/details/103405993
标签:springboot,jndi,数据源
0
投稿
猜你喜欢
C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信
2021-10-21 09:08:21
Kafka常用命令之kafka-console-consumer.sh解读
2022-06-11 00:20:32
一行代码教你解决Scrollview和TextInput焦点获取问题
2022-03-25 21:34:58
c#将字节数组转成易读的字符串的实现
2022-03-02 21:38:31
JavaWeb工程中集成YMP框架快速上手
2023-11-24 12:15:12
深入android Unable to resolve target 'android-XX'详解
2023-05-29 13:21:33
SpringBoot中并发定时任务的实现、动态定时任务的实现(看这一篇就够了)推荐
2023-01-21 13:58:45
SpringCloud开发课程查询功能
2022-04-21 14:22:46
ViewFlipper实现文字轮播效果
2022-04-14 11:10:25
c# 通过wbemtest和WMI Code Cretor更加高效的访问WMI
2022-11-17 16:30:16
IDEA项目maven project没有出现plugins和Dependencies问题
2021-08-08 10:59:53
基于SpringBoot生成二维码的几种实现方式
2022-02-27 16:24:31
unity实现场景切换进度条显示
2022-05-16 20:56:42
Android Studio 3.3.2 正式版的安装教程图解
2022-01-13 22:22:34
C++ vector数组用法及解析
2022-09-20 01:04:25
Java 格式化输出JSON字符串的2种实现操作
2023-11-13 09:41:10
C#强制类型转换小结
2023-11-01 06:29:53
java生成图片验证码功能
2023-06-27 00:31:55
Java如何获取word文档的条目化内容
2023-10-27 15:04:32
Android编程之文件读写操作与技巧总结【经典收藏】
2023-10-16 02:20:52