Spring Mvc Controller类的方法上的@RequestMapping写在接口方法上,然后Controller继承接口并实现方法,@RequestMapping一样会生效

不仅仅是@RequestMapping注解,类似于@Autowired之类的注解都是如此,在也会生效。

spring mvc是通过反射获得父接口得到的相应的注解信息。

估计这么做的原因是为了弥补java本身注解只能在类上并且标注了@Inherited才能被继承的缺陷。。。spring mvc这么做就可以使得Controller的父接口上的注解在Controller中生效了。

 

具体请看:

https://www.cnblogs.com/flying607/p/8295139.html

https://blog.csdn.net/forezp/article/details/80069961

 

有个小疑问:如果在Controller的父接口方法中写了@RequestMapping,在Controller实现的该方法上又写了一个@RequestMapping,那么哪个会生效?还是会抛异常?有待测试。。

 

关于java注解是否能被继承,请看我另一篇文章:

https://blog.csdn.net/qq_36951116/article/details/84387720

你可能感兴趣的:(spring,mvc)