繁体   English   中英

Spring @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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM