Java Spring@RequestMapping注释的方法可以是静态的吗?
这是一个问题的后续问题 据我所知,一个带有Java Spring@RequestMapping注释的方法可以是静态的吗?,java,spring-mvc,inheritance,controller,Java,Spring Mvc,Inheritance,Controller,这是一个问题的后续问题 据我所知,一个带有@RequestMapping-注释方法的@Controller-注释类无法成功地从另一个继承,因为Spring无法识别它们都映射到同一个方法。即使Spring识别出它们是同一个实例,它也无法决定使用两个控制器bean的哪个实例来调用该方法 但是静态方法的调用独立于类的任何实例,并且子类不携带它们自己的父类静态成员副本。让我所有的@RequestMapping-带注释的方法静态(至少在父类上)都可以解决这个问题,这就引出了我的问题: public sta
@RequestMapping
-注释方法的@Controller
-注释类无法成功地从另一个继承,因为Spring无法识别它们都映射到同一个方法。即使Spring识别出它们是同一个实例,它也无法决定使用两个控制器bean的哪个实例来调用该方法
但是静态方法的调用独立于类的任何实例,并且子类不携带它们自己的父类静态成员副本。让我所有的@RequestMapping
-带注释的方法静态
(至少在父类上)都可以解决这个问题,这就引出了我的问题:
public static
方法能否与类上的@Controller
和方法上的@RequestMapping
一起使用?它的行为是否与非静态方法相同*
*我知道
static
方法自然无法访问实例成员,但控制器的实现方式通常应确保没有任何实例变量。如果框架允许的话,我正在处理的所有方法都是静态方法,那么它们的工作原理是完全相同的。在Spring 3.2.X中,它对我来说很好。虽然控制器的实例上通常有数据成员,但它们通常是作为服务的自动连接实例。所以我想知道您是否误解了Spring框架的总体设计模式
我想不出使用静态方法有什么真正的好处,控制器实例已经存在,所以即使你让控制器拥有所有的静态方法,它仍然会被实例化。我认为实例调用的开销会很小,性能会受到影响。@chrylis我试过了,又发现了一个
不明确的映射。这是否可能,而我只是做错了?