
com.lyloou.component.dbmysqlseata.support.DataSourceConfiguration Maven / Gradle / Ivy
package com.lyloou.component.dbmysqlseata.support;
import com.alibaba.druid.pool.DruidDataSource;
import io.seata.rm.datasource.DataSourceProxy;
import io.seata.spring.annotation.GlobalTransactionScanner;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
/**
* @author: ma wei long
* @date: 2020年7月28日 上午12:24:01
*/
@Configuration
public class DataSourceConfiguration {
@Value("${spring.cloud.alibaba.seata.tx-service-group}")
private String group;
@Value("${spring.application.name}")
private String appName;
@Bean
public FescarXidFilter fescarXidFilter() {
return new FescarXidFilter();
}
@Bean
public GlobalTransactionScanner globalTransactionScanner() {
GlobalTransactionScanner scanner = new GlobalTransactionScanner(appName, group);
return scanner;
}
/**
* 从配置文件获取属性构造datasource,注意前缀,这里用的是druid,根据自己情况配置,
* 原生datasource前缀取"spring.datasource"
*/
@Bean
@ConfigurationProperties(prefix = "spring.datasource.druid")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
@Primary
@Bean("dataSource")
public DataSourceProxy dataSource(DataSource druidDataSource) {
return new DataSourceProxy(druidDataSource);
}
// @Bean
// public SqlSessionFactory sqlSessionFactory(DataSourceProxy dataSourceProxy)throws Exception{
// SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
// sqlSessionFactoryBean.setDataSource(dataSourceProxy);
// sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
// .getResources("classpath*:/mapper/*.xml"));
// sqlSessionFactoryBean.setTransactionFactory(new SpringManagedTransactionFactory());
// return sqlSessionFactoryBean.getObject();
// }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy