[英]Inject @Controller into another spring bean
在一個spring mvc項目中,我想將一個@Controller注入一個不同的bean,如下所示:
@Controller
public class MyController {
..
}
@Component
public class SomeSpringBean {
@Resource
private MyController myController;
..
}
這似乎不起作用,雖然@Controller注釋是@Component的特化,就像@Service(它確實有效)一樣:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com..Mycontroller] is defined
我也嘗試直接從ApplicationContext獲取bean。
我想避免討論為什么我要注入控制器,我寧願創建一個額外的抽象級別,而是注入它:)
我將假設您的SomeSpringBean
類是由ContextLoaderListener
加載的根上下文掃描的組件。
我將假設您的@Controller
注釋類由DispatcherServlet
加載的servlet上下文進行掃描。
在這種情況下,根上下文無權訪問servlet上下文中的bean。 只有反過來才是真的。
您需要將SomeSpringBean
類放在一些必須由servlet上下文掃描的其他包中。
如果我的假設是錯誤的,請添加您的上下文配置。
這不是一個好主意。 @Controller
bean意味着由DispatcherServlet
的HandlerMapping
堆棧管理。 我想不出你想從@Controller
bean得到什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.