application.yml
spring:
datasource:
bdck:
driver-class-name: oracle.jdbc.driver.OracleDriver
jdbc-url: jdbc:oracle:thin:@10.88.106.234:1521/orcl
username: bdck
password: salis
monitor:
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/bdck-monitor?Unicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8
username: root
password: 123456
jpa:
show-sql: true
hibernate:
ddl-auto: none
database-platform: org.hibernate.dialect.Oracle10gDialect
DataSourceConfig.java
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "primaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.bdck")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "monitorDataSource")
@ConfigurationProperties(prefix="spring.datasource.monitor")
public DataSource monitorDataSource() {
return DataSourceBuilder.create().build();
}
}
PrimaryDataSourceConfig.java
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef="entityManagerFactoryPrimary",
transactionManagerRef="transactionManagerPrimary",
basePackages= { "com.hlq.electroniclicense.certdatagetter.bdck.repository" }) //设置Repository所在位置
public class PrimaryDataSourceConfig {
@Autowired
@Qualifier("primaryDataSource")
private DataSource primaryDataSource;
@Primary
@Bean(name = "entityManagerFactoryPrimary")
public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) {
return builder
.dataSource(primaryDataSource)
.packages("com.hlq.electroniclicense.certdatagetter.bdck.entity") //设置实体类所在位置
.persistenceUnit("primaryPersistenceUnit")
.build();
}
@Primary
@Bean(name = "transactionManagerPrimary")
public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject());
}
}
MonitorDataSourceConfig.java
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef="entityManagerFactoryMonitor",
transactionManagerRef="transactionManagerMonitor",
basePackages= { "com.hlq.electroniclicense.certdatagetter.monitor.repository" }) //设置Repository所在位置
public class MonitorDataSourceConfig {
@Autowired
@Qualifier("monitorDataSource")
private DataSource monitorDataSource;
@Bean(name = "entityManagerFactoryMonitor")
public LocalContainerEntityManagerFactoryBean entityManagerFactoryMonitor (EntityManagerFactoryBuilder builder) {
LocalContainerEntityManagerFactoryBean factory = builder
.dataSource(monitorDataSource)
.packages("com.hlq.electroniclicense.certdatagetter.monitor.entity") //设置实体类所在位置
.persistenceUnit("monitorPersistenceUnit")
.build();
HashMap<String, Object> properties = new HashMap<>();
properties.put("hibernate.show_sql", "true");
properties.put("hibernate.ddl-auto", "none");
properties.put("hibernate.format_sql", "false");
properties.put("hibernate.dialect", MySQL57Dialect.class.getName());
factory.setJpaPropertyMap(properties);
return factory;
}
@Bean(name = "transactionManagerMonitor")
public PlatformTransactionManager transactionManagerMonitor(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(entityManagerFactoryMonitor(builder).getObject());
}
}