@Configuration
@EnableJpaRepositories(basePackages = "org.lyndon.repository")
@EnableTransactionManagement
@PropertySource("classpath:application.properties")
public class JpaConfig {
private static final String DATABASE_DRIVER = "db.driver";
private static final String DATABASE_URL = "db.url";
private static final String DATABASE_USER = "db.user";
private static final String DATABASE_PASSWORD = "db.password";
private static final String PACKAGES_TO_SCAN = "packages.to.scan";
private static final String HIBERNATE_DIALECT = "hibernate.dialect";
private static final String HIBERNATE_SHOW_SQL = "hibernate.show.sql";
@Resource
private Environment env;
@Bean
public DataSource dataSource() {
DruidDataSource source = new DruidDataSource();
source.setDriverClassName(env.getRequiredProperty(DATABASE_DRIVER));
source.setUrl(env.getRequiredProperty(DATABASE_URL));
source.setUsername(env.getRequiredProperty(DATABASE_USER));
source.setPassword(env.getRequiredProperty(DATABASE_PASSWORD));
return source;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(dataSource());
factory.setPersistenceProviderClass(HibernatePersistenceProvider.class);
factory.setPackagesToScan(env.getRequiredProperty(PACKAGES_TO_SCAN));
factory.setJpaProperties(hibernateProperties());
factory.afterPropertiesSet();
return factory;
}
@Bean
public PlatformTransactionManager transactionManager() {
JpaTransactionManager manager = new JpaTransactionManager();
manager.setEntityManagerFactory(entityManagerFactory().getObject());
return manager;
}
@Bean
public HibernateExceptionTranslator hibernateExceptionTranslator() {
return new HibernateExceptionTranslator();
}
private Properties hibernateProperties() {
Properties properties = new Properties();
properties.put(HIBERNATE_DIALECT, env.getRequiredProperty(HIBERNATE_DIALECT));
properties.put(HIBERNATE_SHOW_SQL, env.getRequiredProperty(HIBERNATE_SHOW_SQL));
return properties;
}
}
@Configuration
@EnableTransactionManagement
@PropertySource("classpath:application.properties")
public class BaseJpaConfig {
private static final String HIBERNATE_DIALECT = "hibernate.dialect";
private static final String HIBERNATE_SHOW_SQL = "hibernate.show.sql";
@Resource
protected Environment env;
@Bean
public HibernateExceptionTranslator hibernateExceptionTranslator() {
return new HibernateExceptionTranslator();
}
protected Properties hibernateProperties() {
Properties properties = new Properties();
properties.put(HIBERNATE_DIALECT, env.getRequiredProperty(HIBERNATE_DIALECT));
properties.put(HIBERNATE_SHOW_SQL, env.getRequiredProperty(HIBERNATE_SHOW_SQL));
return properties;
}
}
@Configuration
@EnableJpaRepositories(basePackages = {"org.lyndon.repository1"}, entityManagerFactoryRef = "springEntityManagerFactory",
transactionManagerRef = "springTransactionManager")
public class SpringJpaConfig extends BaseJpaConfig {
private static final String DATABASE_DRIVER = "db.driver";
private static final String DATABASE_URL = "db.url";
private static final String DATABASE_USER = "db.user";
private static final String DATABASE_PASSWORD = "db.password";
private static final String PACKAGES_TO_SCAN = "packages.to.scan";
@Bean
@ConfigurationProperties(prefix = "datasource.primary")
public DataSource dataSource() {
DruidDataSource source = new DruidDataSource();
source.setDriverClassName(env.getRequiredProperty(DATABASE_DRIVER));
source.setUrl(env.getRequiredProperty(DATABASE_URL));
source.setUsername(env.getRequiredProperty(DATABASE_USER));
source.setPassword(env.getRequiredProperty(DATABASE_PASSWORD));
return source;
}
@Bean(name = "springEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean springEntityManagerFactory() {
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(dataSource());
factory.setPersistenceProviderClass(HibernatePersistenceProvider.class);
factory.setPackagesToScan(env.getRequiredProperty(PACKAGES_TO_SCAN).split(","));
factory.setJpaProperties(hibernateProperties());
factory.afterPropertiesSet();
return factory;
}
@Bean(name = "springTransactionManager")
@Primary
public PlatformTransactionManager transactionManager() {
JpaTransactionManager manager = new JpaTransactionManager();
manager.setEntityManagerFactory(springEntityManagerFactory().getObject());
return manager;
}
}
@Configuration
@EnableJpaRepositories(basePackages = {"org.lyndon.repository2"}, entityManagerFactoryRef = "mysqlEntityManagerFactory",
transactionManagerRef = "mysqlTransactionManager")
public class MysqlJpaConfig extends BaseJpaConfig {
private static final String DATABASE_DRIVER = "db.driver";
private static final String DATABASE_URL = "db.url2";
private static final String DATABASE_USER = "db.user";
private static final String DATABASE_PASSWORD = "db.password";
private static final String PACKAGES_TO_SCAN = "packages.to.scan2";
@Bean
@ConfigurationProperties(prefix = "datasource.secondary")
public DataSource dataSource2() {
DruidDataSource source = new DruidDataSource();
source.setDriverClassName(env.getRequiredProperty(DATABASE_DRIVER));
source.setUrl(env.getRequiredProperty(DATABASE_URL));
source.setUsername(env.getRequiredProperty(DATABASE_USER));
source.setPassword(env.getRequiredProperty(DATABASE_PASSWORD));
return source;
}
@Bean(name = "mysqlEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean mysqlEntityManagerFactory() {
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(dataSource2());
factory.setPersistenceProviderClass(HibernatePersistenceProvider.class);
factory.setPackagesToScan(env.getRequiredProperty(PACKAGES_TO_SCAN).split(","));
factory.setJpaProperties(hibernateProperties());
factory.afterPropertiesSet();
return factory;
}
@Bean(name = "mysqlTransactionManager")
public PlatformTransactionManager transactionManager() {
JpaTransactionManager manager = new JpaTransactionManager();
manager.setEntityManagerFactory(mysqlEntityManagerFactory().getObject());
return manager;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有