java – 将@Controller注入另一个spring bean
发布时间:2020-12-15 00:50:13 所属栏目:Java 来源:网络整理
导读:在一个 spring mvc项目中,我想将一个@Controller注入一个不同的bean,如下所示: @Controllerpublic class MyController { ..}@Componentpublic class SomeSpringBean { @Resource private MyController myController; ..} 这似乎不起作用,虽然@Controller注
在一个
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得到的任何东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |