![](/img/trans.png)
[英]How to use spring aop to log cost time of method annotated with @RequestMapping?
[英]Can a Spring @RequestMapping-annotated method be static?
据我了解,一个@Controller
与-annotated类@RequestMapping
-annotated方法不能成功地从另一种继承,因为春天无法识别他们都映射到相同的方法(S)。 即使Spring知道它们是相同的实例,也无法决定要使用两个控制器bean的哪个实例来调用该方法。
但是静态方法的调用独立于类的任何实例,子类不携带其自己的父级静态成员的副本。 使所有@RequestMapping
注释的方法static
(至少在父类上)可以解决此问题,这使我们想到了我的问题:
public static
方法可以与类上的@Controller
和方法上的@RequestMapping
一起使用吗? 它的行为与非静态方法差不多吗?
*我知道static
方法自然无法访问实例成员,但是通常应以没有任何实例变量的方式来实现控制器。 如果框架允许,我正在处理的所有方法如果都是静态方法,它们的工作原理将完全相同。
在Spring 3.2.X中对我来说效果很好。 虽然,控制器通常在其实例上具有数据成员,但是它们通常是作为服务的自动装配实例。 因此,我想知道您是否误解了Spring框架的总体设计模式。
我想不出使用静态方法的任何真正好处,控制器实例已经存在,因此即使您使控制器具有所有静态方法,它仍将被实例化。 我认为实例调用的开销将很小,并且就性能而言会在噪音中损失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.