springboot+kotlin+jpa多数据源配置

本文介绍如何在项目中配置和使用统计库数据源,包括在application-***.properties中增加Oracle数据库配置,修改DataSourceConfig以支持多数据源,并在jpaConfig中启用事务管理和JPA支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于和第三方对接,需要使用一个统计库,所以增加数据源配置
1.增加application-***.properties文件配置

# 统计库
spring.statistic.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.statistic.datasource.url=jdbc:oracle:thin:@192.168.***:1521/orcl
spring.statistic.datasource.username=username
spring.statistic.datasource.password=password

2.修改DataSourceConfig

package 略

import 略

@Configuration
class DataSourceConfig {
    @Bean("略")
    @Primary
    @Qualifier("略")
    @ConfigurationProperties(prefix = "略")  //将prefix前缀的配置注入,实现属性绑定,一般和@Bean或@Component一起使用
    fun mainDataSource(): DataSource = DataSourceBuilder.create().build()

    @Bean("statisticDataSource")
    @Qualifier("statisticDataSource")
    @ConfigurationProperties(prefix = "spring.statistic.datasource")
    fun statisticDataSource(): DataSource = DataSourceBuilder.create().build()
}

3.增加jpaConfig

package 略

import 略

@Configuration
@EnableTransactionManagement //开启事务支持
@EnableJpaRepositories(entityManagerFactoryRef = "statisticEntityManagerFactory", transactionManagerRef = "statisticTransactionManager",
 basePackages = arrayOf("***.repository.statistic"))  //开启jpa支持,指定Repository工厂,事务管理工厂,Repositories所在的包
class StatisticJpaConfig {
    @Autowired
    private lateinit var jpaProperties: JpaProperties

    @Autowired
    @Qualifier("statisticDataSource")//指明数据源
    private lateinit var statisticDataSource: DataSource

    @Bean("statisticEntityManagerFactory")
    fun statisticEntityManagerFactory(builder: EntityManagerFactoryBuilder): LocalContainerEntityManagerFactoryBean = builder.dataSource(statisticDataSource).properties(getVendorProperties(statisticDataSource)).packages("***.server.model.statistic", "***.server.model.common").persistenceUnit("StatisticPersistenceUnit").build() //设置数据源和实体类位置

    private fun getVendorProperties(dataSource: DataSource): Map<String, String> = jpaProperties.getHibernateProperties(dataSource)

    @Bean("statisticTransactionManager")
    fun statisticTransactionManager(builder: EntityManagerFactoryBuilder): PlatformTransactionManager = JpaTransactionManager(statisticEntityManagerFactory(builder).`object`)

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值