Qu'est-ce que CGLIB et comment est-il lié au printemps? Faut-il définir explicitement l'utilisation de CGLIB lors de l'utilisation de Spring Framework?
Ref Spring docs . Qu'est-ce que CGLIB et comment est-il lié au printemps?
CGLIB est une bibliothèque de génération de code. Spring utilise CGLIB pour générer des proxys.
Spring AOP utilise par défaut des proxys dynamiques JDK standard pour les proxys AOP. Cela permet à n'importe quelle interface (ou ensemble d'interfaces) d'être mandatée.
Oui, vous devez dire à spring d'utiliser explicitement les proxys basés sur CGLIB.
Par xml:
<aop:aspectj-autoproxy proxy-target-class="true"/>
la propriété proxy-target-class définie sur true entraînera la mise en place d'un proxy basé sur CGLIB.
Grâce à l'annotation:
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class AppConfig {
// ...
}
Il n'est pas nécessaire d'ajouter CGLIB à votre chemin de classe. Depuis le printemps 3.2, CGLIB est reconditionné et inclus dans le JAR à ressorts.
Vous avez peut-être aussi regardé this .