spring boot 配置DataSource 和 事务管理

spring boot 采用两种方式配置:xml方式和java config方式。在此主要说明java config方式。

1. DataSource配置

@Configuration
@PropertySource("classpath:application.properties")
public class DataSourceConfiguration {
    @Value("${spring.datasource.driverClass:com.mysql.jdbc.Driver}")
    private String driverClass;
    //10.2.3.22
    @Value("${spring.datasource.jdbcUrl:jdbc:mysql:///?useUnicode=true&characterEncoding=UTF-8}")
    private String jdbcUrl;
    @Value("${spring.datasource.user:}")
    private String user;
    @Value("${spring.datasource.password:}")
    private String password;
    @Value("${spring.datasource.initialPoolSize:34}")
    private int initialPoolSize;
    @Value("${spring.datasource.maxActive:500}")
    private int maxActive;
    @Value("${spring.datasource.minIdle:100}")
    private int minIdle;
    @Value("${spring.datasource.maxIdle:500}")
    private int maxIdle;
    @Value("${spring.datasource.validateInterval:30}")
    private int validateInterval;


    @Bean
    public DataSource dataSource() throws PropertyVetoException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
//        org.apache.tomcat.jdbc.pool.DataSource dataSource = new org.apache.tomcat.jdbc.pool.DataSource();
        dataSource.setUser(user);
        dataSource.setPassword(password);
        dataSource.setJdbcUrl(jdbcUrl);
        dataSource.setDriverClass(driverClass);
        dataSource.setInitialPoolSize(initialPoolSize);
        dataSource.setMaxAdministrativeTaskTime(maxActive);
        dataSource.setMaxIdleTime(maxIdle);

        return dataSource;
    }
}



上述是一个完整的java config类,该类使用@Configuration注解指明。其中,@PropertySource用于指明属性文件的路径,该属性文件存储的是类中的属性值信息。

@Value("${spring.datasource.driverClass:com.mysql.jdbc.Driver}") spring.datasource.driverClass,为properties文件中的key值,而com.mysql.jdbc.Driver为默认值,如果key值不存在或者是其对应的value为空就默认采用默认值。

在此,我们使用的是C3P0提供的DataSource类。也可以使用其他开源插件。


2. 配置事务。

@Configuration
@EnableTransactionManagement
public class JpaRepositoryConfiguration {

    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
        HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();

        hibernateJpaVendorAdapter.setDatabase(Database.MYSQL);
        hibernateJpaVendorAdapter.setGenerateDdl(true);

        return hibernateJpaVendorAdapter;
    }

    @Bean
    public EntityManagerFactory entityManagerFactory(JpaVendorAdapter jpaVendorAdapter) {

        LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
        localContainerEntityManagerFactoryBean.setDataSource(dataSource);
        localContainerEntityManagerFactoryBean.setPackagesToScan("com.kuaidi.bi");
        localContainerEntityManagerFactoryBean.afterPropertiesSet();
//        return builder.dataSource(dataSource).build();
        return localContainerEntityManagerFactoryBean.getObject();

    }

    @Bean
//    public PlatformTransactionManager annotationDrivenTransactionManager(EntityManagerFactory entityManagerFactory) {
    public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
        JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
        jpaTransactionManager.setEntityManagerFactory(entityManagerFactory);
        return jpaTransactionManager;
    }


}






转载于:https://my.oschina.net/u/1011659/blog/397620

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值