@EnableTransactionManagement 开启事情注解
@EnableJpaRepositories 开启jpa
@Configurable
@EnableTransactionManagement
@EnableJpaRepositories(basePackages="spittr.repository",includeFilters={@ComponentScan.Filter(type=FilterType.REGEX, pattern=".*.*JpaRepo")})
public class DataSourceConfigDataSource{
@Profile("dev")
@Bean
public DataSource Data() {
System.out.println("初始化 数据库连接池....");
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl(
"jdbc:mysql://192.168.173.224:3306/test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8");
ds.setUsername("root");
ds.setPassword("mysql");
ds.setInitialSize(5);
ds.setMaxIdle(10);
return ds;
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
public SpitterRepository spitterRepository(JdbcTemplate jdbcTemplate) {
return new JdbcSpitterRepository(jdbcTemplate);
}
// @Bean
// public SpitterRepository spitterRepository(LocalSessionFactoryBean sessionFactory) {
// return new HibernateSpittrRepository((SessionFactory) sessionFactory);
// }
@Bean
public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
LocalSessionFactoryBean sfb = new LocalSessionFactoryBean();
sfb.setDataSource(dataSource);
sfb.setPackagesToScan("spittr.vo");
Properties props = new Properties();
props.setProperty("dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
sfb.setHibernateProperties(props);
return sfb;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource,JpaVendorAdapter jpaVendorAdapter){
LocalContainerEntityManagerFactoryBean emfb = new LocalContainerEntityManagerFactoryBean();
emfb.setDataSource(dataSource);
emfb.setJpaVendorAdapter(jpaVendorAdapter);
emfb.setPackagesToScan("spittr.vo");
return emfb;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter(){
HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
adapter.setShowSql(true);
adapter.setGenerateDdl(false);
adapter.setDatabasePlatform("org.hibernate.dialect.MySQL5InnoDBDialect");
return adapter;
}
// @Bean
// public JndiObjectFactoryBean entityManagerFactory(){
// JndiObjectFactoryBean jndiObjectFB = new JndiObjectFactoryBean();
// jndiObjectFB.setJndiName("jdbc/SpittrDS");
// return jndiObjectFB;
// }
@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory emf){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
//
// @Override
// public PlatformTransactionManager annotationDrivenTransactionManager() {
// return transactionManager((EntityManagerFactory) entityManagerFactory(Data(),jpaVendorAdapter()));
// }
}