在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] 删除。
我来说两句