自定义@RestController用以简化与@RequestMapping的联合使用场景

版权申明:本文为原创文章,转载请注明原文出处

原文链接:https://blog.it-follower.com/posts/1527145243.html

在实际开发中,我们经常使用@RestController/@Controller联合@RequestMapping来标注一个Controller,每次都需要开发者写两个注解,比较麻烦。下面就对它进行自定义封装,以后只需要写一个注解就能达到同样的效果。

原用法

1
2
3
4
5
@RestController
@RequestMapping("/test")
public class TestController {
...
}

自定义用法

新建一个注解类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 自定义RestController注解,结合RequestMapping
*
* @author ye17186
* @version 2019/3/5 10:22
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RestController
@RequestMapping
public @interface YRestController {

@AliasFor(annotation = RequestMapping.class)
String name() default "";

@AliasFor(annotation = RequestMapping.class)
String[] value() default {};
}

封装之后,我们再写Controller时,就可以少一行代码了

1
2
3
4
@YRestController("/test")
public class TestController {
...
}

上面是@RestController封装,@Controller的封装只需要把YRestController中的@RestController替换成@Controller即可,一看就懂。

评论