Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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中获得单例控制器的原型bean?_Java_Spring - Fatal编程技术网

Java 如何在Spring中获得单例控制器的原型bean?

Java 如何在Spring中获得单例控制器的原型bean?,java,spring,Java,Spring,我正在使用注释配置,目前无法为我的控制器使用请求范围,但我需要控制器使用的一个bean作为原型。所以我认为最好的方法是通过方法注入获得单例控制器的原型 但后来我意识到Spring的方法注入需要一个抽象类,所以我无法使用注释配置 谁能告诉我怎么做吗?在我看来,这是非常常见的场景,但目前它只能通过控制器的“请求范围”来实现 或者我必须使我的控制器应用程序ContextAware并从上下文中获取bean。但是annotation config@Controller可以是ApplicationConte

我正在使用注释配置,目前无法为我的控制器使用请求范围,但我需要控制器使用的一个bean作为原型。所以我认为最好的方法是通过方法注入获得单例控制器的原型

但后来我意识到Spring的方法注入需要一个抽象类,所以我无法使用注释配置

谁能告诉我怎么做吗?在我看来,这是非常常见的场景,但目前它只能通过控制器的“请求范围”来实现


或者我必须使我的控制器应用程序ContextAware并从上下文中获取bean。但是annotation config@Controller可以是ApplicationContextAware吗

您可以简单地
@injectapplicationcontext ctx
,但是您需要在子上下文(
dispatcherservlet.xml
)中定义另一个bean(您仍然需要它)。然后你可以查一下


目前无法使用注释定义查找方法注入。有一个问题。因此,对于这个特定的控制器,您可以使用xml配置来定义查找方法。

我不理解第二段。。。您的意思是我可以使用“@Controller public abstract class Controller”并在应用程序上下文xml定义中定义该方法吗?@Edgar是-这样定义它。只需省略
@Controller
注释,@Controller能否实现ApplicationContextAware接口?何时使用组件扫描?或者我也不能使用组件扫描fotthat@Edgar-您可以使用
@injectapplicationcontext
。我想它会被注射的。