始终使用Spring Boot(JPA)打开具有10个连接的AWS RDS

时间:2018-09-24 10:04:38

标签: java mysql amazon-web-services spring-boot amazon-rds

我的项目中有一个问题,我的数据库总是打开10个连接。我正在使用在Elastic Beanstalk上运行的Spring Boot应用程序(REST API)。

应用程序启动后立即显示10个连接,而没有对数据库的任何查询。目前,我有4个存储库类,如下所示:

    @Repository
@Transactional()
public class FieldJpaRepository {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @PersistenceContext
    EntityManager entityManager;

    public List<Field> findAll(){ //JPQL
        TypedQuery<Field> namedQuery = entityManager.createNamedQuery("find_all_fields", Field.class);
        return namedQuery.getResultList();
    }

    public Field findById(int id){
        return entityManager.find(Field.class,id);
    }

    public List<Field> findAreaFields(float minLat, float maxLat, float minLng, float maxLng){
        return entityManager.createQuery("FROM Field f WHERE f.lat BETWEEN :minLat AND :maxLat AND f.lng BETWEEN :minLng AND :maxLng ", Field.class)
                .setParameter("minLat", minLat)
                .setParameter("maxLat", maxLat)
                .setParameter("minLng", minLng)
                .setParameter("maxLng", maxLng)
                .getResultList();
    }

    public Field updateOrInsertField(Field field){
        return entityManager.merge(field);
    }

    public void deleteField(int id){
        Field findField = findById(id);
        entityManager.remove(entityManager.contains(findField) ? findField : entityManager.merge(findField));
    }


}

我的application.properties文件如下:

spring.jpa.show-sql=true
spring.datasource.url=********
spring.datasource.username=******
spring.datasource.password=******
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=create

我做错什么了吗?我是否缺少任何配置参数?

谢谢。

1 个答案:

答案 0 :(得分:0)

spring.datasource.hikari.maximumPoolSize设置为合适的值。

说明:

  • Hikari是自2.0以来用于Spring Boot的默认JDBC连接池
  • 它会预先打开与数据库的连接,并将它们保留在空闲池中
  • 默认值为10
  • spring.datasource.hikari.*是Hikari的特定设置
  • Hikari Options as explained here