springboot 如何配置多个jndi数据源

作者:UziNb 时间:2023-03-13 16:28:07 

springboot 配置多个jndi数据源

1.在application.properties中,添加jndi配置

如下图

springboot 如何配置多个jndi数据源

2.新建dataSourceConfig类

springboot 如何配置多个jndi数据源

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
  • asp之家 软件编程 m.aspxhome.com