美文网首页
Spring Boot+Druid多数据源配置

Spring Boot+Druid多数据源配置

作者: acooler15 | 来源:发表于2019-01-01 18:02 被阅读0次

    [toc]

    依赖版本

    Spring Boot:1.5.18

    druid-spring-boot-starter:1.1.10

    参考文档

    druid-spring-boot-starter

    pom配置

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.mytest</groupId>
        <artifactId>druid</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <properties>
    
            <sqlite.version>3.15.1</sqlite.version>
            <mysql.version>5.1.41</mysql.version>
            <druid-starter.version>1.1.10</druid-starter.version>
        </properties>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.18.RELEASE</version>
        </parent>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--配置文件处理器,配置文件进行绑定就会有提示-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>
            <!--&lt;!&ndash; 热部署 &ndash;&gt;-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional>
            </dependency>
            <!-- Spring JDBC支持-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <!-- springboot集成druid 连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid-starter.version}</version>
            </dependency>
    
      
            <!-- SpringBoot 单元测试支持-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
            </dependency>
        
            <dependency>
                <groupId>org.xerial</groupId>
                <artifactId>sqlite-jdbc</artifactId>
                <version>${sqlite.version}</version>
                <scope>runtime</scope>
            </dependency>
    
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
                <scope>runtime</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
        </dependencies>
    
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    springboot配置文件

    spring.application.name=druid_test
    
    # 数据源配置
    # 数据源 one
    spring.datasource.druid.one.url=jdbc:mysql://127.0.0.1:3306/one?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
    spring.datasource.druid.one.username=root
    spring.datasource.druid.one.password=root
    spring.datasource.druid.one.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.druid.one.initial-size=5
    spring.datasource.druid.one.min-idle=15
    spring.datasource.druid.one.max-active=60
    spring.datasource.druid.one.validation-query=SELECT 1
    spring.datasource.druid.one.test-on-borrow=true
    spring.datasource.druid.one.test-while-idle=true
    spring.datasource.druid.one.time-between-eviction-runs-millis=60000
    #数据源 two
    spring.datasource.druid.two.url=jdbc:mysql://127.0.0.1:3306/two?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
    spring.datasource.druid.two.username=root
    spring.datasource.druid.two.password=root
    spring.datasource.druid.two.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.druid.two.initial-size=5
    spring.datasource.druid.two.min-idle=15
    spring.datasource.druid.two.max-active=60
    spring.datasource.druid.two.validation-query=SELECT 1
    spring.datasource.druid.two.test-on-borrow=true
    spring.datasource.druid.two.test-while-idle=true
    spring.datasource.druid.two.time-between-eviction-runs-millis=60000
    
    
    # 合并多个datasource监控
    spring.datasource.druid.use-global-data-source-stat=true
    # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
    spring.datasource.druid.web-stat-filter.enabled=true
    spring.datasource.druid.web-stat-filter.url-pattern=/*
    spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
    #spring.datasource.druid.web-stat-filter.session-stat-enable=
    #spring.datasource.druid.web-stat-filter.session-stat-max-count=
    #spring.datasource.druid.web-stat-filter.principal-session-name=
    #spring.datasource.druid.web-stat-filter.principal-cookie-name=
    #spring.datasource.druid.web-stat-filter.profile-enable=
    
    # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
    spring.datasource.druid.stat-view-servlet.enabled=true
    spring.datasource.druid.stat-view-servlet.url-pattern=/admin/druid/*
    spring.datasource.druid.stat-view-servlet.reset-enable=false
    #spring.datasource.druid.stat-view-servlet.login-username=admin
    #spring.datasource.druid.stat-view-servlet.login-password=admin
    #spring.datasource.druid.stat-view-servlet.allow=
    #spring.datasource.druid.stat-view-servlet.deny=
    
    # Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置
    #spring.datasource.druid.aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
    

    配置注入

    
    import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
    import org.slf4j.Logger;
    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;
    
    @Configuration
    public class DataSourceConfigurer {
        private static final Logger log = org.slf4j.LoggerFactory.getLogger(DataSourceConfigurer.class);
        @Primary
        @Bean(value = "dataSourceOne",initMethod = "init")
        @ConfigurationProperties("spring.datasource.druid.one")
        public DataSource dataSourceOne(){
            log.info("Init DataSourceOne");
            return DruidDataSourceBuilder.create().build();
        }
    
        @Bean(value = "dataSourceTwo",initMethod = "init")
        @ConfigurationProperties("spring.datasource.druid.two")
        public DataSource dataSourceTwo(){
            log.info("Init DataSourceTwo");
            return DruidDataSourceBuilder.create().build();
        }
    }
    

    相关文章

      网友评论

          本文标题:Spring Boot+Druid多数据源配置

          本文链接:https://www.haomeiwen.com/subject/caznlqtx.html