[JAVA] A propos de la liaison de l'annotation Spring AOP

Aperçu

Ajoutez votre propre annotation à la classe ou à la méthode et utilisez les caractères spécifiés dans l'annotation.

--Environnement - Spring AOP 4.3.5 - cglib 2.1_3

La méthode d'acquisition est différente entre l'annotation attachée à la classe et l'annotation attachée à la méthode, et j'y suis tombé par hasard. ..

Version de classe

Annotation attachée à la classe


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ClassAnnotation{
    String value() default "defalut";

Classe cible d'aspect


@ClassAnnotation("Class_01")
public class SampleController {

Réalisation d'une partie d'Aspect (PointCat est réalisé autour)


@Around("@within(ann)")
public void classIntercepter(ProceedingJoinPoint pjp, ClassAnnotation ann) throws Throwable{
    System.out.println(ann.value());
    pjp.proceed();

Version de la méthode

Annotation attachée à la méthode


@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodAnnotation {
    String value() default "defalut";

Méthode de cible d'aspect


@MethodAnnotation("Method_01")
public void sampleMethod(

Réalisation partie d'Aspect (


@Around("@annotation(ann)")
public void MethodIntercepter(ProceedingJoinPoint pjp, MethodAnnotation ann) throws Throwable{
    System.out.println(ann.value());
    pjp.proceed();

Si vous n'utilisez pas de valeur, définissez le chemin complet de la classe d'annotation.

Réalisation partie d'Aspect(classe)


@Around("@within(com.example.annotation.ClassAnnotation)")
public void classIntercepter(ProceedingJoinPoint pjp) throws Throwable{
    pjp.proceed();

Réalisation partie d'Aspect(Méthode)


@Around("@annotation(com.example.annotation.MethodAnnotation)")
public void classIntercepter(ProceedingJoinPoint pjp) throws Throwable{
    pjp.proceed();

référence:

Une petite annotation Java spéciale Comment écrire le spécificateur de coupure de point Spring AOP Utilisons Annotation avec AspectJ Partie 1

Recommended Posts

A propos de la liaison de l'annotation Spring AOP
À propos de Spring AOP
À propos de Spring AOP
À propos de DI of Spring ①
A propos de Spring AOP Pointcut
À propos de DI of Spring ②
Présentation de Spring AOP
L'histoire de la rencontre avec l'annotation personnalisée Spring
À propos de l'affichage initial de Spring Framework
À propos du guide de démarrage officiel de Spring Framework
À propos de disconnect () de HttpURLConnection
À propos de la sélection d'OpenJDK
À propos de la liaison de méthode Java
Histoire des annotations Java
À propos de form. ○○ de form_with
À propos de la fonction de Spring Boot en raison de différentes versions
Une histoire sur une BeanNotOfRequiredTypeException qui s'est produite après l'application d'AOP au printemps
À propos de la gestion de Null
[Notes personnelles] À propos du framework Spring
À propos des instances Java
À propos de l'erreur de contexte Spring Framework
[Java] Création d'annotations originales
À propos de la description de Docker-compose.yml
À propos de la comparaison de taille de compareTo
À propos des types de couverture de code
Introduction à Spring Boot ② ~ AOP ~
[Java] Ordre d'exécution de Spring AOP
Mémorandum sur LOD.
Spring Boot pour l'apprentissage des annotations
À propos des annotations liées à Spring DI
À propos de la correspondance partielle du sélecteur