boot jndi数据源 spring_SpringBoot结合Druid配置JNDI多数据源

本文介绍了如何在SpringBoot应用中结合Druid配置JNDI方式的多数据源,包括Tomcat的JNDI配置、Druid监控配置以及YML文件和Java配置类的详细设置,涉及Oracle和MySQL两种数据库。
摘要由CSDN通过智能技术生成

Tomcat配置JNDI(%TOMCAT_HOME%/conf/context.xml)

factory="com.alibaba.druid.pool.DruidDataSourceFactory" filters="stat"

useGlobalDataSourceStat="true" defaultTransactionIsolation="READ_COMMITTED" validationQuery="select 1 from DUAL"

type="javax.sql.DataSource" username="test" password="test" driverClassName="com.mysql.cj.jdbc.Driver"

url="jdbc:mysql://127.0.0.1:3306/db_test?useUnicode=true&characterEncoding=utf8&serverTimezone=PRC&useSSL=false&rewriteBatchedStatements=TRUE&autoReconnect=true&allowMultiQueries=true"/>

factory="com.alibaba.druid.pool.DruidDataSourceFactory" filters="stat"

useGlobalDataSourceStat="true" defaultTransactionIsolation="READ_COMMITTED" validationQuery="select 1 from DUAL"

type="javax.sql.DataSource" username="test" password="test" driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@//127.0.0.1:1521/GHSTEST"/>

Tomcat配置Druid监控(%TOMCAT_HOME%/conf/web.xml)

DruidStatView

com.alibaba.druid.support.http.StatViewServlet

resetEnable

true

loginUsername

admin

loginPassword

admin

DruidStatView

/druid/*

yml配置

db:

datasource:

jndiName:

masterDB: java:comp/env/jdbc/master

clusterDB: java:comp/env/jdbc/cluster

master配置

@Configuration

@MapperScan(basePackages = "cn.com.test.dao.master", sqlSessionFactoryRef = "masterSqlSessionFactory")

public class MasterBaseDataSourceConfig {

@Value("${db.datasource.jndiName.masterDB}")

private String jndiName;

@Primary

@Bean(name = "masterDataSource")

public DataSource masterDataSource() {

JndiDataSourceLookup lookup = new JndiDataSourceLookup();

lookup.setResourceRef(true);

return lookup.getDataSource(jndiName);

}

@Primary

@Bean(name = "masterTransactionManager")

public DataSourceTransactionManager masterTransactionManager() {

return new DataSourceTransactionManager(masterDataSource());

}

@Primary

@Bean(name = "masterSqlSessionFactory")

public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)

throws Exception {

final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();

sessionFactory.setDataSource(masterDataSource);

sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()

.getResources("classpath:mapper/master/*.xml"));

return sessionFactory.getObject();

}

}

cluster配置

@Configuration

@MapperScan(basePackages = "cn.com.test.dao.cluster", sqlSessionFactoryRef = "clusterSqlSessionFactory")

public class ClusterBaseDataSourceConfig {

@Value("${db.datasource.jndiName.clusterDB}")

private String jndiName;

@Bean(name = "clusterDataSource")

public DataSource clusterDataSource() {

JndiDataSourceLookup lookup = new JndiDataSourceLookup();

lookup.setResourceRef(true);

return lookup.getDataSource(jndiName);

}

@Bean(name = "clusterTransactionManager")

public DataSourceTransactionManager clusterTransactionManager() {

return new DataSourceTransactionManager(clusterDataSource());

}

@Bean(name = "clusterSqlSessionFactory")

public SqlSessionFactory clusterSqlSessionFactory(@Qualifier("clusterDataSource") DataSource clusterDataSource)

throws Exception {

final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();

sessionFactory.setDataSource(clusterDataSource);

sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()

.getResources("classpath:mapper/cluster/*.xml"));

return sessionFactory.getObject();

}

}

ojdbc6.jar

mysql-connector-java-6.0.6.jar

druid-1.1.10.jar

记得把mysql驱动,Oracle驱动,Druid jar拷贝到%TOMCAT_HOME%/lib下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值