Spring Boot默认连接池tomcat属性不起作用

时间:2019-04-10 12:28:40

标签: java spring-boot tomcat jdbc jdbctemplate

我们正在使用弹簧靴 1.5.9.RELEASE 。我们的maven依赖项中有spring-boot-starter-data-jpamysql-connector-java连接到MySQL数据库。我们尚未配置任何连接池。根据{{​​3}},因为我们使用的是spring-boot-starter-data-jpa,所以tomcat连接池被用作默认连接池。但是,当我们尝试将连接池属性设置为spring.datasource.tomcat.*时,它将无法正常工作。但是,当使用spring.datasource.*格式时,同样如此。

spring.datasource.max-active=50spring.datasource.tomcat.max-active=50不工作的地方工作。我通过在主类中打印数据源来确认这一点,对于该类,我将获得org.apache.tomcat.jdbc.pool.DataSource@<objecthash>{key1=value1; key2=value2; ....}作为输出。

为什么会这样?是否因为我们正在使用mysql-connector-java而没有读取tomcat连接池属性?如果是这种情况,那么当我打印数据源时,如何将org.apache.tomcat.jdbc.pool.DataSource@a1f72f5作为具有配置值的数据源?还是我错过了文档中的某些内容?还是JPA无法正常工作?

pom.xml:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath />
</parent>

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>

Mainclass.java

import javax.sql.DataSource;
@SpringBootApplication
public class MainClass implements CommandLineRunner {

    @Autowired
    DataSource dataSource;

    public static void main(String[] args) {
        SpringApplication.run(MainClassChild.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("DATASOURCE = " + dataSource);

    }
}

Application.properties

spring.datasource.url=jdbc:mysql://1.2.3.4/dbname?useSSL=false
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#Working
spring.datasource.max-active=30
spring.datasource.max-idle=20
spring.datasource.min-idle=10

#Not Working
spring.datasource.tomcat.max-active=30
spring.datasource.tomcat.max-idle=20
spring.datasource.tomcat.min-idle=10

注意:我们为jdbctemplate自动接线并在DAO中使用它。

0 个答案:

没有答案