Spring Boot - spring-boot-arrancador-aop

spring-boot-arrancador-aop

En el trabajo, spring-boot-starter-aop se usa a menudo para implementar la programación de aspectos en las aplicaciones, como el registro, la supervisión del rendimiento, la gestión de transacciones, etc. Aquí hay un ejemplo de código completo usando el registro como ejemplo:

Cree un proyecto Maven y agregue las siguientes dependencias al archivo pom.xml:

<dependencies>
        <!-- Spring Boot Starter Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring Boot Starter AOP -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
    </dependencies>

Cree una clase Java UserService.java que contenga un método simple getUser():


package com.lfsun.springbootstarteraop;

import org.springframework.stereotype.Component;

@Component
public class UserService {
    
    

    public String getUser(String username) {
    
    
        System.out.println("Fetching user: " + username);
        return "User: " + username;
    }

}

Cree una clase de aspecto LoggingAspect.java, que imprimirá registros antes y después de la ejecución del método de la clase UserService:

package com.lfsun.springbootstarteraop;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class LoggingAspect {
    
    

    @Before("execution(* UserService.getUser(String)) && args(username)")
    public void beforeAdvice(JoinPoint joinPoint, String username) {
    
    
        System.out.println("Fetching user beforeAdvice: " + username);
    }

    @After("execution(* UserService.getUser(String)) && args(username)")
    public void afterAdvice(JoinPoint joinPoint, String username) {
    
    
        System.out.println("Finished fetching user afterAdvice: " + username);
    }

}

Cree una clase de inicio Application.java, que se utiliza para iniciar la aplicación Spring Boot:


package com.lfsun.springbootstarteraop;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class SpringBootStarterAopApplication {
    
    

    public static void main(String[] args) {
    
    
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootStarterAopApplication.class, args);

        UserService userService = context.getBean(UserService.class);
        userService.getUser("lfsun666");
    }

}

En este ejemplo, creamos una clase UserService que tiene un
método getUser() que devuelve información sobre un usuario. Luego, creamos una clase de aspecto LoggingAspect, que utiliza anotaciones @Before y @After para definir notificaciones previas y posteriores, que imprimirán registros antes y después de la ejecución del método getUser() de la clase UserService
. Finalmente, en el método main() de la clase Application, obtenemos una instancia de UserService y llamamos al método getUser().

Cuando ejecuta esta aplicación Spring Boot, verá mensajes de registro impresos antes y después de la ejecución del método getUser().

Supongo que te gusta

Origin blog.csdn.net/qq_43116031/article/details/131135091
Recomendado
Clasificación