Spring自定义注解

目录

Spring自定义注解

1、在spring.xml中配置信息

2、自定义一个注解

3、定义一个增强类(切面),来实现注解的功能

4、测试


Spring自定义注解

1、在spring.xml中配置信息

(此配置是SpringAOP切面的配置,如果已经引入SpringAOP则可以不用再添加)

 <aop:aspectj-autoproxy proxy-target-class="true" />

2、自定义一个注解

 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Inherited;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 ​
 @Documented
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.METHOD)
 @Inherited
 public @interface MyAnno {
     //注解传递的参数,可不加
     String param();
 }

3、定义一个增强类(切面),来实现注解的功能

 import com.xxx.anno.MyAnno;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
 import org.springframework.stereotype.Component;
 ​
 @Component
 @Aspect
 public class MyInterceptor {
 ​
     @Before(value = "execution(public * com.xxx.controller.*Controller.*()) && @annotation(myAnno)")
     public void proceed(MyAnno myAnno) throws Throwable {
         System.out.println("***********************");
         System.out.println(myAnno.param());
     }
 ​
 }

4、测试

 import com.xxx.anno.MyAnno;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 ​
 /**
  * @author JngKang
  * @date 2022-05-27 10:32
  */
 @RestController
 @RequestMapping("/test")
 public class TestController {
 ​
     @ResponseBody
     @GetMapping("/fun1")
     @MyAnno(param = "123")
     public String fun1() {
         return "ok";
     }
 }

接口被访问后,控制台打印:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值