1。因项目中采用了多数据源的业务操作,所以借此 使用springboot搭建了多数据源的管理模式。

在对应的配置文件中,新建一个主数据源,在自定义不同的其他数据源。并配置别名

@EnableAutoConfiguration(exclude={
JpaRepositoriesAutoConfiguration.class
})
@SpringBootApplication
@MapperScan(basePackages = { "com.dao" })
@EnableScheduling
@EnableTransactionManagement
@Import({DynamicDataSourceRegister.class})
public class SpringbootApplication {
public static void main(String[] args){
SpringApplication.run(SpringbootApplication.class, args);
}
}
这里的启动类一定要添加@EnableAutoConfiguration(exclude={ JpaRepositoriesAutoConfiguration.class })。指的是取消spring默认的数据源管理模式。
1.自定义一个注解
@Retention(RetentionPolicy.RUNTIME)
@Target({
ElementType.METHOD, ElementType.TYPE
})
public @interface DS {
String value() ;
}
2.这一步为加载数据源操作
package com.ds;
import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.PropertyValues;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.bind.RelaxedDataBinder;
import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.support.DefaultConversionService;
import org.springframework.core.env.Environment;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
@Configuration
@EnableTransactionManagement(proxyTargetClass = true)
@EnableConfigurationProperties(DataSourceProperties

最低0.47元/天 解锁文章
7119

被折叠的 条评论
为什么被折叠?



