java自定义注解并定义AOP获取注解

基础概念就先略过了,下面直接贴出一个简单的例子:

    1. 定义一个自定义注解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Auth {
}
    1. 为这个注解定义切点实现具体逻辑(我是这样理解的)
@Aspect
@Component
public class AuthController {

    @Pointcut(value = "@annotation(com.example.bootMp.annotation.Auth)")
    public void pointCut(){}

    @Before(value = "pointCut() && @annotation(auth)")
    public void before(Auth auth){
        System.out.println("======用在定义的方法之前!!=======");
    }
}
    1. 验证注解是否可用

随便找一个接口,加上我们刚刚自定义的注解@Auth

    @Auth
    @RequestMapping("/toLogin")
    public String toLogin(Model model){
        model.addAttribute("msg","转向login页面");
        return "Login";
    }

启动项目,请求这个接口:

2020-04-26 16:08:43.238  INFO [nio-8080-exec-2]  o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-04-26 16:08:43.238  INFO [nio-8080-exec-2]  o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-04-26 16:08:43.254  INFO [nio-8080-exec-2]  o.s.web.servlet.DispatcherServlet        : Completed initialization in 16 ms
======用在定义的方法之前!!=======
Disconnected from the target VM, address: '127.0.0.1:57077', transport: 'socket'
2020-04-26 16:09:13.281  INFO [       Thread-9]  o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
2020-04-26 16:09:13.290  INFO [       Thread-9]  com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} closed

期望的语句输出了,测试成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值