Spring Boot: 自定义注解结合切面

本文介绍了如何在Spring Boot中创建并使用自定义注解结合切面进行功能增强。首先,创建了一个名为@MyLogger的注解,设置message和fallback属性,并指定其作用于方法。然后,实现切面MyLoggerAspect,根据注解的message值动态处理方法。接着,在Service和Controller层分别添加相关接口和方法。通过访问特定URL,验证注解和切面配合工作正常,实现了预期功能。这个简单的案例展示了自定义注解在实际开发中的潜力,如流量控制和服务降级等高级功能。
摘要由CSDN通过智能技术生成

注解看起来是一个很神奇的东西,也是一个解耦的利器。直入正题,从创建一个自定义的注解开始。

1.创建注解@MyLogger,添加属性message,fallback。这里Target对象选择方法,Retention选择运行时。Ctrl+点击可以查看ElementType的可选值,里面有非常详尽的注释,这里不再赘述。

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyLogger {
    String message() default "";

    String fallback() default "fallbackMethod";
}

2.创建切面MyLoggerAspectj,里面做一个增强处理,如果message为add,返回结果为原方法+fallback设定的方法。

@Aspect
@Component
public class MyLoggerAspectj {
    Logger logger = LoggerFactory.getLogger(MyLoggerAspectj.class);

    private String PROCESS_TYPE_ADD = "add";

    @Around("@annotation(myLogger)")
    public Object around(ProceedingJoinPoint proceedingJoinPoint, MyLogger myLogger) throws Throwable {

        Object o1 = proceedingJoinPoint.proceed();

        if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值