Intégration du framework SSH : Configuration et exemple avec la gestion de livres
Le framework SSH est une intégration des technologies Struts, Spring et Hibernate pour le développement d'applications web Java. Il ne doit pas être confondu avec le protocole Secure Shell. Cette architecture répartit les responsabilités en quatre couches : présentation, logique métier, persistacne des données et objets du domaine. Struts fourn ...
Publié le 1 juillet à 19h29
Stratégies d'optimisation des transactions longues avec Spring
Comprendre les transactions longues
Une transaction longue (ou "Big Transaction") désigne une opération dont le temps d'exécution dépasse les seuils recommandés pour maintenir la santé d'une base de données. En Spring, les transactions sont gérées via deux approches : déclarative (@Transactional) ou programmatique (TransactionTemplate ...
Publié le 29 juin à 00h20
Comprendre l'implémentation de ImportSelector dans Spring Framework
Dans une classe annotée avec @Configuration, l'annotation @Import permet d'importer d'autres configurations. Elle peut également inclure des implémentations de l'interface org.springframework.context.annotation.ImportSelector.
L'interfcae ImportSelector définit la méthode selectImports(), qui retourne un tableau de noms de classes à enregistrer ...
Publié le 25 juin à 20h31
Scénarios d'échec de la transaction Spring
Dans une même classe, un appel d'une méthode transactionnelle à une méthode non transactionnelle peut fonctionner correctement. En revanche, le cas contraire où la transaction échoue est illustré par le point 4 ci-dessous (appel interne dans une même classe).
@Autowired
private XXXMapper xxxMapper;
@Autowired
private YYYMapper yyyMapper;
@Tra ...
Publié le 25 juin à 16h07
Simplification des appels HTTP avec RestTemplate dans Spring
Lors de ma lecture de documents sur Spring Cloud, je suis tombé sur le composant Feign et j'ai découvert qu'il utilisait RestTemplate en interne. Cette découverte a éveillé ma curiosité et j'ai décidé d'explorer son fonctionnement interne. Quelle agréable surprise ! Je ne connaissais pas cette classe et son approche si élégante.
Autrefois, pour ...
Publié le 25 juin à 03h56
Initialisation du conteneur SpringMVC avec l'interface ApplicationListener de Spring
Dans les applications SpringMVC, l'initialisation du conteneur est généralement configurée via le fichier web.xml. Cependant, pour des besoins de test ou de flexibilité, il peut être pratique de charger directement le fichier de configuration Spring-MVC. L'utilisation de l'interface ApplicationListener de Spring offre une méthode élégante pour ...
Publié le 24 juin à 21h39
Configuration d'un client Dubbo pour l'invocation de services distants
La consommation d'un service Dubbo correspond à l'invocation de méthodes à distance à partir d'une application cliente, en s'appuyant sur un registre de servicse pour la découverte.
1. Structure du projet :
Le projet de consommation est organisé pour intégrer les dépendances nécessaires et les fichiers de configuration.
2. Dépendances Maven (po ...
Publié le 24 juin à 21h22
Principe fondamental de l'Inversion de Contrôle (IoC) via injection par méthode setter
Qu'est-ce que l'IoC ?
L'Inversion de Contrôle (IoC) est un principe où le contrôle des opérations est transféré du développeur à un composant externe ou à l'utilisateur. Dans cet article, nous explorons une implémentation basique de l'IoC à travers l'injection de dépendances par méthode setter.
Mise en pratique
Commençons par définir une couche ...
Publié le 22 juin à 01h43
Guide de préparation à l'entretien sur MyBatis
Comprendre le framework MyBatis
MyBatis se positionne comme un framework de mapping objet-relationnel (ORM) partiel. Contrairement aux solutions ORM complètes, il encapsule les opérations JDBC tout en laissant aux développeurs le contrôle total sur les requêtes SQL. Cette approche élimine les tâches répétitives telles que la configuration des p ...
Publié le 20 juin à 19h58
Caféine : Une Solution de Cache Haute Performance en Java
Caféine est une réimplémentation du cache Guava utilisant Java 8. Elle offre une expérience considérablement améliorée par rapport au cache de Guava et à ConcurrentLinkedHashMap. C'est un bibliothèque de cache hautes performances, considérée comme le cadre de cache optimal pour Java 8.
Le Cache Guava
Le cache Guava de Google est une excellente ...
Publié le 16 juin à 01h49