Spring Boot连接池的理解

阿卜杜拉萨克灵魂:

在Spring boot application.properties文件中,我们具有以下选项:

server.tomcat.max-threads = 100
server.tomcat.max-connections = 100
spring.datasource.tomcat.max-active = 100
spring.datasource.tomcat.max-idle = 30

这是我的存储库类

public interface UserRepository extends JpaRepository<Users,Integer>{}

这是服务等级

@Service
@Transactional(rollbackFor = Exception.class)
public class UserService {

    @Autowired
    private UserRepository userRepository;
    public User getUserById(Integer id){return userRepository.findOne(id)}

问题是,userRepository如何创建与数据库的连接,并将如何使用我的应用程序属性文件中的连接池。我来自JDBC和hibernate,在那儿我使用DataManager,DataSource,Connection类来使用连接池,但是在春季启动中,此类没有任何代码行,并且一切正常

大卫:

它可以像以前一样工作,但是通过Spring Boot,Spring可以为您执行更多任务。
无论是否使用Spring,DAO类as UserRepository都不会直接操作数据源,也不会直接创建JDBC连接。
这些由EntityManagerFactory您使用实现操作
使用Spring-Hibernate,您仍然必须配置EntityManagerFactory
现在有了Spring Boot,您无需对其进行配置。
为您完成。

Spring Boot的新功能是,您现在还可以配置服务器数据源属性:

server.tomcat.max-threads = 100
server.tomcat.max-connections = 100
spring.datasource.tomcat.max-active = 100
spring.datasource.tomcat.max-idle = 30

因为Tomcat服务器可以由Spring Boot应用程序本身启动。

Spring Boot文档的这一部分给出了数据源实现的优先顺序:

生产数据库连接也可以使用池化数据源自动配置。这是用于选择特定实现的算法:

我们更喜欢Tomcat池化DataSource的性能和并发性,因此,如果可用,我们总是选择它。

否则,如果有HikariCP,我们将使用它。

如果Tomcat池数据源和HikariCP都不可用,并且Commons DBCP可用,那么我们将使用它,但是我们不建议在生产中使用它,并且不建议使用它。

最后,如果Commons DBCP2可用,我们将使用它。


更新:根据Spring Boot 2.x,HikariCP是默认的连接池机制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Spring Boot应用程序连接池如何与RedisTemplate一起使用

使用连接池进行Spring Boot和数据库测试

Spring Boot中tomcat的默认连接池?

使用Spring JPA(休眠)实体管理器何时将连接返回到连接池?

Spring JDBC连接池最佳实践

Oracle-Spring框架的连接池

Spring JDBC连接池和InputStream结果

Spring WebClient中的连接池

带有连接池的Spring Boot应用中的SQLServerDataSource

具有相同数据源的Spring JPA Hikari多个连接池

Spring Boot连接池配置的最佳实践

在Spring Boot应用程序中创建自定义连接池

JPA实体管理器如何在Spring Boot Application中选择连接池?

使用Spring Data Redis访问Redis连接池

Spring Boot2。Hikari连接池优化

Spring Boot-很少的请求后,Redis缓存连接池已耗尽

具有长时间运行请求的Spring Boot连接池

如何使用默认的Tomcat连接池在Spring Boot 1.3.x中的DataSource上设置自定义连接属性

Spring Cloud:Feign和Http连接池

使用Hikari连接池的Spring Boot

Spring Boot和Mongo DB中的连接池

如何在Spring Boot + Mybatis中使用连接池

如何使用XML中的spring-data-mongodb启用mongo连接池监视?

默认的HikariCP连接池启动Spring Boot应用程序

Spring Web Flux-WebClient-交换-块-如何释放与连接池的连接?

Spring,Hibernate C3P0连接池,物理连接未关闭

将Spring Boot与EBean和HikariCP连接池集成

带有默认连接池的 Spring Boot

启用 SSL 的 Spring Boot 阻塞连接池