2017-10-16 6 views
0

Dans application.properties de démarrage de printemps fichier que nous avons les options suivantes:compréhension de pool de connexion de démarrage Spring

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

Ceci est ma classe de dépôt

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

C'est la classe de service

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

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

La question est, comment userRepository créer une connexion à DB et va-t-il utiliser la connexion caca l du fichier de propriétés de mon application. Je viens de jdbc et hybernete où j'ai utilisé DataManager, DataSource, classes de connexion pour utiliser le pool de connexion, mais au printemps de démarrage je n'avais aucune ligne de code avec ces classes et tout fonctionne bien

Répondre

1

Cela fonctionne comme si cela fonctionnait avant mais avec Spring Boot, Spring fait plus de tâches pour vous.
Avec ou sans Spring, la classe DAO sous UserRepository ne manipule pas directement la source de données et ne crée pas non plus directement les connexions JDBC.
Ils sont manipulés par l'implémentation EntityManagerFactory que vous utilisez. Avec Spring-Hibernate, vous deviez toujours configurer le EntityManagerFactory.
Maintenant avec Spring Boot, vous n'avez pas besoin de le configurer.
C'est fait pour vous.

La nouvelle chose Spring Boot est que vous pouvez également configurer les propriétés de source de données du serveur maintenant:

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

que le serveur Tomcat peut être démarré par l'application de démarrage du ressort lui-même.

This part of the Spring Boot documentation donne l'ordre de préférence de la mise en œuvre de la source de données:

connexions de base de données de production peuvent également être configurés automatiquement à l'aide d'une mise en commun de DataSource . Voici l'algorithme pour choisir une implémentation spécifique :

Nous préférons la mise en commun de Tomcat DataSource pour ses performances et concurrence, donc si cela est disponible, nous choisissons toujours.

Sinon, si HikariCP est disponible, nous l'utiliserons.

Si ni la mise en commun Tomcat, ni source de données HikariCP sont disponibles et si Commons DBCP est disponible nous allons l'utiliser, mais nous ne recommandons pas en production et son soutien est dépréciée.

Enfin, si Commons DBCP2 est disponible, nous allons l'utiliser.

+0

bienfaisant cela signifie que si je ne comprends pas spring.datasource.tomcat.max-active = 100 spring.datasource.tomcat.max ralenti = 30 printemps boot me faire pour les valeurs par défaut? –