Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring@RequestMapping注释的方法可以是静态的吗?_Java_Spring Mvc_Inheritance_Controller - Fatal编程技术网

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我试过了,又发现了一个
不明确的映射。这是否可能,而我只是做错了?