赞
踩
1.读取配置文件
@Configuration public class DataSourceConfig { //主数据源 @Primary @Qualifier("primaryDataSource") @Bean(name = "primaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.druid.primary") public DataSource primaryDataSource() { return DruidDataSourceBuilder.create().build(); } @Qualifier("secondaryDataSource") @Bean(name = "secondaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.druid.secondary") public DataSource secondaryDataSource() { return DruidDataSourceBuilder.create().build(); } }
2.主数据源
@Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef="entityManagerFactoryPrimary", transactionManagerRef="transactionManagerPrimary", basePackages= { "xxx.xxx.primary.Repository" }) //设置Repository所在位置 public class PrimaryConfig { @Autowired private JpaProperties jpaProperties; @Value("${spring.jpa.properties.hibernate.primary-dialect}") private String primaryDialect;// 这里配置的mysql @Primary @Bean(name = "entityManagerFactoryPrimary") public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) { jpaProperties.getProperties().put("hibernate.dialect",primaryDialect); Map<String,Object> properties = hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(),new HibernateSettings()); return builder .dataSource(primaryDataSource)//数据源 .properties(properties) .packages(xxx.xxx.entity")//设置实体类所在位置 .persistenceUnit("primaryPersistenceUnit") .build(); } @Primary @Bean(name = "transactionManagerPrimary") public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) { return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject()); } }
@Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef="entityManagerFactorySecondary", transactionManagerRef="transactionManagerSecondary", basePackages= { "xxx.xxx.secondary.repository" }) public class SecondaryConfig { @Autowired @Qualifier("secondaryDataSource") private DataSource secondaryDataSource; @Resource private HibernateProperties hibernateProperties; @Value("${spring.jpa.properties.hibernate.secondary-dialect}") private String secondaryDialect;//这配置的pgsql @Autowired private JpaProperties jpaProperties; @Bean(name = "entityManagerFactorySecondary") public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) { jpaProperties.getProperties().put("hibernate.dialect",secondaryDialect); Map<String,Object> properties = hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(),new HibernateSettings()); return builder .dataSource(secondaryDataSource) .properties(properties) .packages("xxx.xxx.secondary.entity") .persistenceUnit("secondaryPersistenceUnit") .build(); } @Bean(name = "transactionManagerSecondary") PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) { return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject()); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。