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

首先:目录结构如下

springboot 多数据源(三种数据库连接池--JDBC,dbcp2,Druid)详解编程语言

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:/var/opt/spring-boot-test/config.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

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

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15416.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论