• springboot 多数据源(三种数据库连接池--JDBC,dbcp2,Druid)


    本文使用的是springboot2.0(在配置数据源时和springboot1.X略有区别)

    首先:springboot默认支持的连接池有dbcp,dbcp2, tomcat, hikari四种连接池

    1. 由于Tomcat数据源连接池的性能和并发,在tomcat可用时,我们总是优先使用它。
    2. 如果HikariCP可用,我们将使用它。
    3. 如果Commons DBCP可用,我们将使用它,但在生产环境不推荐使用它。
    4. 最后,如果Commons DBCP2可用,我们将使用它

      即自动优先级tomcat>HikariCP>DBCP>DBCP2(想要使用后面的连接池需要指定类型type:如:spring.datasource.ccjoin-settlement.type=org.apache.commons.dbcp2.BasicDataSource)

    本例使用的是用多数据源,不同连接池:

    需要的包:

    spring-boot-starter-web(包含自带的tomcat)、mybatis-spring-boot-starter

    springboot数据库连接:
    有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate
    用JdbcTemplate需要的包:
    mysql-connector-java、spring-boot-starter-jdbc
    集成mybatis需要的包:
    mysql-connector-java、spring-boot-starter-jdbc、mybatis-spring-boot-starter

    首先:目录结构如下

    pom.xml如下

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      4     <modelVersion>4.0.0</modelVersion>
      5 
      6     <groupId>com.jmu.ccjoin</groupId>
      7     <artifactId>spring-boot</artifactId>
      8     <version>0.0.1-SNAPSHOT</version>
      9     <packaging>war</packaging>
     10 
     11     <name>spring-boot</name>
     12     <description>spring-boot</description>
     13 
     14     <parent>
     15         <groupId>org.springframework.boot</groupId>
     16         <artifactId>spring-boot-starter-parent</artifactId>
     17         <version>2.0.4.RELEASE</version>
     18         <relativePath /> <!-- lookup parent from repository -->
     19     </parent>
     20 
     21     <properties>
     22         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     23         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     24         <java.version>1.8</java.version>
     25     </properties>
     26 
     27     <dependencies>
     28         <dependency>
     29             <groupId>org.springframework.boot</groupId>
     30             <artifactId>spring-boot-starter-web</artifactId>
     31         </dependency>
     32 
     33         <!-- tomcat自带jdbc连接池 -->
     34         <dependency>
     35             <groupId>org.springframework.boot</groupId>
     36             <artifactId>spring-boot-starter-tomcat</artifactId>
     37             <!-- <scope>provided</scope> -->
     38         </dependency>
     39 
     40         <dependency>
     41             <groupId>org.mybatis.spring.boot</groupId>
     42             <artifactId>mybatis-spring-boot-starter</artifactId>
     43             <version>1.3.2</version>
     44         </dependency>
     45 
     46         <dependency>
     47             <groupId>mysql</groupId>
     48             <artifactId>mysql-connector-java</artifactId>
     49             <scope>runtime</scope>
     50         </dependency>
     51 
     52         <dependency>
     53             <groupId>org.springframework.boot</groupId>
     54             <artifactId>spring-boot-starter-jdbc</artifactId>
     55         </dependency>
     56         
     57         <!-- dbcp2数据库连接池 -->
     58         <dependency>
     59             <groupId>org.apache.commons</groupId>
     60             <artifactId>commons-dbcp2</artifactId>
     61         </dependency>
     62 
     63         <!-- dbcp数据库连接池 -->
     64         <dependency>
     65             <groupId>commons-dbcp</groupId>
     66             <artifactId>commons-dbcp</artifactId>
     67             <version>1.4</version>
     68         </dependency>
     69 
     70         <!-- druid数据库连接池 -->
     71         <dependency>
     72             <groupId>com.alibaba</groupId>
     73             <artifactId>druid</artifactId>
     74             <version>1.1.10</version>
     75         </dependency>
     76 
     77         <dependency>
     78             <groupId>org.springframework.boot</groupId>
     79             <artifactId>spring-boot-starter-test</artifactId>
     80             <scope>test</scope>
     81         </dependency>
     82         <dependency>
     83             <groupId>org.springframework.boot</groupId>
     84             <artifactId>spring-boot-configuration-processor</artifactId>
     85             <optional>false</optional>
     86         </dependency>
     87     </dependencies>
     88 
     89     <build>
     90         <finalName>spring-boot</finalName>
     91         <plugins>
     92             <plugin>
     93                 <groupId>org.springframework.boot</groupId>
     94                 <artifactId>spring-boot-maven-plugin</artifactId>
     95                 <executions>
     96                     <execution>
     97                         <goals>
     98                             <goal>repackage</goal>
     99                         </goals>
    100                     </execution>
    101                 </executions>
    102             </plugin>
    103         </plugins>
    104     </build>
    105 
    106 </project>

    ConfigProperties.java(把配置文件封装到bean并注入spring容器)

      1 package com.jmu.ccjoin.config;
      2 
      3 import org.springframework.beans.factory.annotation.Value;
      4 import org.springframework.context.annotation.PropertySource;
      5 import org.springframework.stereotype.Component;
      6 
      7 @Component
      8 @PropertySource("file:/var/opt/spring-boot-test/config.properties")
      9 public class ConfigProperties {
     10 
     11     @Value("${spring.datasource.jmuv3.jdbc-url}")
     12     private String jmuv3Url;
     13 
     14     @Value("${spring.datasource.jmuv3.driver-class-name}")
     15     private String jmuv3DriverClassName;
     16 
     17     @Value("${spring.datasource.jmuv3.username}")
     18     private String jmuv3Username;
     19 
     20     @Value("${spring.datasource.jmuv3.password}")
     21     private String jmuv3Password;
     22 
     23     @Value("${spring.datasource.ccjoin-settlement.jdbc-url}")
     24     private String ccjoinSettlementUrl;
     25 
     26     @Value("${spring.datasource.ccjoin-settlement.driver-class-name}")
     27     private String ccjoinSettlementDriverClassName;
     28 
     29     @Value("${spring.datasource.ccjoin-settlement.username}")
     30     private String ccjoinSettlementUsername;
     31 
     32     @Value("${spring.datasource.ccjoin-settlement.password}")
     33     private String ccjoinSettlementPassword;
     34 
     35     @Value("${spring.datasource.ccjoin-settlement.type}")
     36     private String ccjoinSettlementType;
     37 
     38     @Value("${spring.datasource.jmu-mp.jdbc-url}")
     39     private String jmuMpUrl;
     40 
     41     @Value("${spring.datasource.jmu-mp.driver-class-name}")
     42     private String jmuMpDriverClassName;
     43 
     44     @Value("${spring.datasource.jmu-mp.username}")
     45     private String jmuMpUsername;
     46 
     47     @Value("${spring.datasource.jmu-mp.password}")
     48     private String jmuMpPassword;
     49 
     50     /**
     51      * jmuv3Url的取得
     52      * 
     53      * @return String jmuv3Url
     54      */
     55     public String getJmuv3Url() {
     56         return jmuv3Url;
     57     }
     58 
     59     /**
     60      * jmuv3Url的设定
     61      * 
     62      * @param jmuv3Url
     63      *            jmuv3Url
     64      */
     65     public void setJmuv3Url(String jmuv3Url) {
     66         this.jmuv3Url = jmuv3Url;
     67     }
     68 
     69     /**
     70      * jmuv3DriverClassName的取得
     71      * 
     72      * @return String jmuv3DriverClassName
     73      */
     74     public String getJmuv3DriverClassName() {
     75         return jmuv3DriverClassName;
     76     }
     77 
     78     /**
     79      * jmuv3DriverClassName的设定
     80      * 
     81      * @param jmuv3DriverClassName
     82      *            jmuv3DriverClassName
     83      */
     84     public void setJmuv3DriverClassName(String jmuv3DriverClassName) {
     85         this.jmuv3DriverClassName = jmuv3DriverClassName;
     86     }
     87 
     88     /**
     89      * jmuv3Username的取得
     90      * 
     91      * @return String jmuv3Username
     92      */
     93     public String getJmuv3Username() {
     94         return jmuv3Username;
     95     }
     96 
     97     /**
     98      * jmuv3Username的设定
     99      * 
    100      * @param jmuv3Username
    101      *            jmuv3Username
    102      */
    103     public void setJmuv3Username(String jmuv3Username) {
    104         this.jmuv3Username = jmuv3Username;
    105     }
    106 
    107     /**
    108      * jmuv3Password的取得
    109      * 
    110      * @return String jmuv3Password
    111      */
    112     public String getJmuv3Password() {
    113         return jmuv3Password;
    114     }
    115 
    116     /**
    117      * jmuv3Password的设定
    118      * 
    119      * @param jmuv3Password
    120      *            jmuv3Password
    121      */
    122     public void setJmuv3Password(String jmuv3Password) {
    123         this.jmuv3Password = jmuv3Password;
    124     }
    125 
    126     /**
    127      * ccjoinSettlementUrl的取得
    128      * 
    129      * @return String ccjoinSettlementUrl
    130      */
    131     public String getCcjoinSettlementUrl() {
    132         return ccjoinSettlementUrl;
    133     }
    134 
    135     /**
    136      * ccjoinSettlementUrl的设定
    137      * 
    138      * @param ccjoinSettlementUrl
    139      *            ccjoinSettlementUrl
    140      */
    141     public void setCcjoinSettlementUrl(String ccjoinSettlementUrl) {
    142         this.ccjoinSettlementUrl = ccjoinSettlementUrl;
    143     }
    144 
    145     /**
    146      * ccjoinSettlementDriverClassName的取得
    147      * 
    148      * @return String ccjoinSettlementDriverClassName
    149      */
    150     public String getCcjoinSettlementDriverClassName() {
    151         return ccjoinSettlementDriverClassName;
    152     }
    153 
    154     /**
    155      * ccjoinSettlementDriverClassName的设定
    156      * 
    157      * @param ccjoinSettlementDriverClassName
    158      *            ccjoinSettlementDriverClassName
    159      */
    160     public void setCcjoinSettlementDriverClassName(String ccjoinSettlementDriverClassName) {
    161         this.ccjoinSettlementDriverClassName = ccjoinSettlementDriverClassName;
    162     }
    163 
    164     /**
    165      * ccjoinSettlementUsername的取得
    166      * 
    167      * @return String ccjoinSettlementUsername
    168      */
    169     public String getCcjoinSettlementUsername() {
    170         return ccjoinSettlementUsername;
    171     }
    172 
    173     /**
    174      * ccjoinSettlementUsername的设定
    175      * 
    176      * @param ccjoinSettlementUsername
    177      *            ccjoinSettlementUsername
    178      */
    179     public void setCcjoinSettlementUsername(String ccjoinSettlementUsername) {
    180         this.ccjoinSettlementUsername = ccjoinSettlementUsername;
    181     }
    182 
    183     /**
    184      * ccjoinSettlementPassword的取得
    185      * 
    186      * @return String ccjoinSettlementPassword
    187      */
    188     public String getCcjoinSettlementPassword() {
    189         return ccjoinSettlementPassword;
    190     }
    191 
    192     /**
    193      * ccjoinSettlementPassword的设定
    194      * 
    195      * @param ccjoinSettlementPassword
    196      *            ccjoinSettlementPassword
    197      */
    198     public void setCcjoinSettlementPassword(String ccjoinSettlementPassword) {
    199         this.ccjoinSettlementPassword = ccjoinSettlementPassword;
    200     }
    201 
    202     /**
    203      * ccjoinSettlementType的取得
    204      * 
    205      * @return String ccjoinSettlementType
    206      */
    207     public String getCcjoinSettlementType() {
    208         return ccjoinSettlementType;
    209     }
    210 
    211     /**
    212      * ccjoinSettlementType的设定
    213      * 
    214      * @param ccjoinSettlementType
    215      *            ccjoinSettlementType
    216      */
    217     public void setCcjoinSettlementType(String ccjoinSettlementType) {
    218         this.ccjoinSettlementType = ccjoinSettlementType;
    219     }
    220 
    221     /**
    222      * jmuMpUrl的取得
    223      * 
    224      * @return String jmuMpUrl
    225      */
    226     public String getJmuMpUrl() {
    227         return jmuMpUrl;
    228     }
    229 
    230     /**
    231      * jmuMpUrl的设定
    232      * 
    233      * @param jmuMpUrl
    234      *            jmuMpUrl
    235      */
    236     public void setJmuMpUrl(String jmuMpUrl) {
    237         this.jmuMpUrl = jmuMpUrl;
    238     }
    239 
    240     /**
    241      * jmuMpDriverClassName的取得
    242      * 
    243      * @return String jmuMpDriverClassName
    244      */
    245     public String getJmuMpDriverClassName() {
    246         return jmuMpDriverClassName;
    247     }
    248 
    249     /**
    250      * jmuMpDriverClassName的设定
    251      * 
    252      * @param jmuMpDriverClassName
    253      *            jmuMpDriverClassName
    254      */
    255     public void setJmuMpDriverClassName(String jmuMpDriverClassName) {
    256         this.jmuMpDriverClassName = jmuMpDriverClassName;
    257     }
    258 
    259     /**
    260      * jmuMpUsername的取得
    261      * 
    262      * @return String jmuMpUsername
    263      */
    264     public String getJmuMpUsername() {
    265         return jmuMpUsername;
    266     }
    267 
    268     /**
    269      * jmuMpUsername的设定
    270      * 
    271      * @param jmuMpUsername
    272      *            jmuMpUsername
    273      */
    274     public void setJmuMpUsername(String jmuMpUsername) {
    275         this.jmuMpUsername = jmuMpUsername;
    276     }
    277 
    278     /**
    279      * jmuMpPassword的取得
    280      * 
    281      * @return String jmuMpPassword
    282      */
    283     public String getJmuMpPassword() {
    284         return jmuMpPassword;
    285     }
    286 
    287     /**
    288      * jmuMpPassword的设定
    289      * 
    290      * @param jmuMpPassword
    291      *            jmuMpPassword
    292      */
    293     public void setJmuMpPassword(String jmuMpPassword) {
    294         this.jmuMpPassword = jmuMpPassword;
    295     }
    296 
    297 }

    DataSourceConfigCcjoinSettlement.java(使用DBCP2连接池,优先级较低,有tomcat自带JDBC连接池时需要指定数据源类型type)

    注意 @ConfigurationProperties注解不支持驼峰式

     1 package com.jmu.ccjoin.config;
     2 
     3 import javax.sql.DataSource;
     4 
     5 import org.apache.ibatis.session.SqlSessionFactory;
     6 import org.mybatis.spring.SqlSessionFactoryBean;
     7 import org.mybatis.spring.annotation.MapperScan;
     8 import org.springframework.beans.factory.annotation.Autowired;
     9 import org.springframework.beans.factory.annotation.Qualifier;
    10 import org.springframework.boot.context.properties.ConfigurationProperties;
    11 import org.springframework.boot.jdbc.DataSourceBuilder;
    12 import org.springframework.context.annotation.Bean;
    13 import org.springframework.context.annotation.Configuration;
    14 import org.springframework.context.annotation.Primary;
    15 import org.springframework.core.env.Environment;
    16 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
    17 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    18 
    19 @Configuration
    20 @MapperScan(basePackages = "com.jmu.ccjoin.dao.ccjoinSettlement", sqlSessionFactoryRef = "sqlSessionFactoryCcjoinSettlement")
    21 public class DataSourceConfigCcjoinSettlement {
    22 
    23     @Autowired
    24     private Environment env;
    25 
    26     @Bean(name = "ccjoinSettlement")
    27     @ConfigurationProperties(prefix = "spring.datasource.ccjoin-settlement")
    28     public DataSource dataSourceCcjoinSettlement() {
    29         // 使用DBCP2数据源(在配置文件配置所使用的数据源类型)
    30         return DataSourceBuilder.create().build();
    31     }
    32 
    33     @Bean(name = "sqlSessionFactoryCcjoinSettlement")
    34     public SqlSessionFactory createSqlSessionFactory(@Qualifier("ccjoinSettlement") DataSource ds) throws Exception {
    35 
    36         SqlSessionFactoryBean fb = new SqlSessionFactoryBean();
    37         fb.setDataSource(ds);
    38 
    39         fb.setTypeAliasesPackage(env.getProperty("spring.mybatis.typeAliasPackage"));
    40         fb.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(env.getProperty("spring.mybatis.mapper.ccjoinSettlement")));
    41 
    42         return fb.getObject();
    43     }
    44 
    45     @Bean(name = "transactionManagerCcjoinSettlement")
    46     @Primary
    47     public DataSourceTransactionManager transactionManager(@Qualifier("ccjoinSettlement") DataSource ds) throws Exception {
    48         return new DataSourceTransactionManager(ds);
    49     }
    50 }

    DataSourceConfigJmuMp.java(使用第三方数据源阿里连接池Druid)

     1 package com.jmu.ccjoin.config;
     2 
     3 import javax.sql.DataSource;
     4 
     5 import org.apache.ibatis.session.SqlSessionFactory;
     6 import org.mybatis.spring.SqlSessionFactoryBean;
     7 import org.mybatis.spring.annotation.MapperScan;
     8 import org.springframework.beans.factory.annotation.Autowired;
     9 import org.springframework.beans.factory.annotation.Qualifier;
    10 import org.springframework.boot.context.properties.ConfigurationProperties;
    11 import org.springframework.context.annotation.Bean;
    12 import org.springframework.context.annotation.Configuration;
    13 import org.springframework.context.annotation.Primary;
    14 import org.springframework.core.env.Environment;
    15 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
    16 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    17 
    18 import com.alibaba.druid.pool.DruidDataSource;
    19 
    20 @Configuration
    21 @MapperScan(basePackages = "com.jmu.ccjoin.dao.jmuMp",sqlSessionFactoryRef="sqlSessionFactoryJmuMp" )
    22 public class DataSourceConfigJmuMp {
    23 
    24     @Autowired
    25     private ConfigProperties configProperties;
    26 
    27     @Autowired
    28     private Environment env;
    29 
    30     @Bean(name = "jmuMp")
    31     @ConfigurationProperties(prefix = "spring.datasource.jmu-mp")
    32     public DataSource dataSourceJmuMp() {
    33 
    34         // 使用Druid连接池
    35         DruidDataSource ds = new DruidDataSource();
    36         ds.setUrl(configProperties.getJmuMpUrl());
    37         ds.setUsername(configProperties.getJmuMpUsername());
    38         ds.setPassword(configProperties.getJmuMpPassword());
    39 
    40         return ds;
    41     }
    42 
    43     @Bean(name = "sqlSessionFactoryJmuMp")
    44     public SqlSessionFactory createSqlSessionFactory(@Qualifier("jmuMp") DataSource ds) throws Exception {
    45 
    46         SqlSessionFactoryBean fb = new SqlSessionFactoryBean();
    47         fb.setDataSource(ds);
    48 
    49         fb.setTypeAliasesPackage(env.getProperty("spring.mybatis.typeAliasPackage"));
    50         fb.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(env.getProperty("spring.mybatis.mapper.jmuMp")));
    51 
    52         return fb.getObject();
    53     }
    54 
    55     @Bean(name = "transactionManagerJmuMp")
    56     @Primary
    57     public DataSourceTransactionManager transactionManager(@Qualifier("jmuMp") DataSource ds) throws Exception {
    58         return new DataSourceTransactionManager(ds);
    59     }
    60 }

    DataSourceConfigJmuv3.java(使用Tomcat自带的的jdbc连接池)

     1 package com.jmu.ccjoin.config;
     2 
     3 import javax.sql.DataSource;
     4 
     5 import org.apache.ibatis.session.SqlSessionFactory;
     6 import org.mybatis.spring.SqlSessionFactoryBean;
     7 import org.mybatis.spring.annotation.MapperScan;
     8 import org.springframework.beans.factory.annotation.Autowired;
     9 import org.springframework.beans.factory.annotation.Qualifier;
    10 import org.springframework.boot.context.properties.ConfigurationProperties;
    11 import org.springframework.boot.jdbc.DataSourceBuilder;
    12 import org.springframework.context.annotation.Bean;
    13 import org.springframework.context.annotation.Configuration;
    14 import org.springframework.context.annotation.Primary;
    15 import org.springframework.core.env.Environment;
    16 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
    17 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    18 
    19 @Configuration
    20 @MapperScan(basePackages = "com.jmu.ccjoin.dao.jmuv3", sqlSessionFactoryRef = "sqlSessionFactoryJmuv3")
    21 public class DataSourceConfigJmuv3 {
    22 
    23     @Autowired
    24     private Environment env;
    25 
    26     @Bean(name = "jmuv3")
    27     @Primary
    28     @ConfigurationProperties(prefix = "spring.datasource.jmuv3")
    29     public DataSource dataSourceJmuv3() {
    30         // 使用JDBC数据源
    31         return DataSourceBuilder.create().build();
    32     }
    33 
    34     @Bean(name = "sqlSessionFactoryJmuv3")
    35     @Primary
    36     public SqlSessionFactory createSqlSessionFactory(@Qualifier("jmuv3") DataSource ds) throws Exception {
    37 
    38         SqlSessionFactoryBean fb = new SqlSessionFactoryBean();
    39         fb.setDataSource(ds);
    40 
    41         fb.setTypeAliasesPackage(env.getProperty("spring.mybatis.typeAliasPackage"));
    42         fb.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(env.getProperty("spring.mybatis.mapper.jmuv3")));
    43 
    44         return fb.getObject();
    45     }
    46 
    47     @Bean(name = "transactionManagerJmuv3")
    48     @Primary
    49     public DataSourceTransactionManager transactionManager(@Qualifier("jmuv3") DataSource ds) throws Exception {
    50         return new DataSourceTransactionManager(ds);
    51     }
    52 }

    Application.java

     1 package com.jmu.ccjoin;
     2 
     3 import org.springframework.boot.SpringApplication;
     4 import org.springframework.boot.autoconfigure.SpringBootApplication;
     5 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
     6 import org.springframework.boot.builder.SpringApplicationBuilder;
     7 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
     8 
     9 @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
    10 public class Application extends SpringBootServletInitializer {
    11 
    12     public static void main(String[] args) {
    13         SpringApplication.run(Application.class, args);
    14     }
    15 
    16     @Override
    17     protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    18         return builder.sources(Application.class);
    19     }
    20 }

    application.yml配置文件

     1 server:
     2   port: 20001
     3   servlet:
     4     path: /spring-boot
     5   
     6 spring: 
     7   mybatis: 
     8     typeAliasPackage: com.jmu.ccjoin.entity 
     9     mapper:      
    10       jmuv3: classpath:mybatis/mysql/jmuv3/*.xml
    11       ccjoinSettlement: classpath:mybatis/mysql/ccjoinSettlement/*.xml    
    12       jmuMp: classpath:mybatis/mysql/jmuMp/*.xml
    13       
    14     

    外部配置文件(路径:D:varoptspring-boot-testconfig.properties)

     1 # 数据源1配置 
     2 spring.datasource.jmuv3.jdbc-url=jdbc:mysql://172.16.1.23:3306/jmuv3?useUnicode=true&characterEncoding=utf8
     3 spring.datasource.jmuv3.driver-class-name=com.mysql.jdbc.Driver
     4 spring.datasource.jmuv3.username=root
     5 spring.datasource.jmuv3.password=123.com
     6 #数据源1的连接池(使用默认即tomcat自带的JDBC连接池)
     7 
     8 # 数据源2配置 
     9 spring.datasource.ccjoin-settlement.jdbc-url=jdbc:mysql://172.16.1.23:3306/ccjoin_settlement?useUnicode=true&characterEncoding=utf8
    10 spring.datasource.ccjoin-settlement.driver-class-name=com.mysql.jdbc.Driver
    11 spring.datasource.ccjoin-settlement.username=root
    12 spring.datasource.ccjoin-settlement.password=123.com
    13 #数据源2的连接池配置(使用DBCP2连接池,也是springboot支持的连接池之一)
    14 spring.datasource.ccjoin-settlement.type=org.apache.commons.dbcp2.BasicDataSource
    15 
    16 # 数据源3配置 
    17 spring.datasource.jmu-mp.jdbc-url=jdbc:mysql://172.16.1.23:3306/jmu_mp?useUnicode=true&characterEncoding=utf8
    18 spring.datasource.jmu-mp.driver-class-name=com.mysql.jdbc.Driver
    19 spring.datasource.jmu-mp.username=root
    20 spring.datasource.jmu-mp.password=123.com
    21 #数据源3的连接池配置(使用第三方数据源,Druid)
    22 
    23 
    24 #连接池配置
    25 spring.datasource.max-wait-millis=10000 
    26 spring.datasource.min-idle=5 
    27 spring.datasource.initial-size=5 
    28 spring.datasource.validation-query=SELECT x 
    29 spring.datasource.connection-properties=characterEncoding=utf8

    注意配置文件中配置项后面的空格

  • 相关阅读:
    get_folder_size.ps1
    python3-database-shelve
    Windows中实现不依赖账户登录的开机启动程序
    SpringBoot+SpringDataJPA如何实现自定义且自由度高的查询[多表,多查询条件,多排序条件,分页,自定义sql封装]
    Windows phone 8.1之数据绑定(Data Binding)
    TextBox使用技巧--转载
    在Eclipse中使用git把项目导入到git中--转载
    运用多种知识点实现一个综合小游戏
    Git帮助之初始化项目设置向导
    如何从Eclipse导入github上的项目源码--转载
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/9544432.html
Copyright © 2020-2023  润新知