为什么不在spring容器管理controller

 我来答
就烦条0o
2016-07-16 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46499
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
Spring容器与SpringMVC容器

1.疑问:为什么不用spring去管理所有类?

我们配置springMVC 中,为什么controller不直接交给spring 管理而要spring MVC容器单独分开来管理

2.Spring容器 与 SpringMVC关系

Spring容器与SpringMVC容器是父子关系,子容器可以访问父容器的对象,父容器不能访问子容器的类,如果我们在springMVC配置
文件中,直接扫描所有类,把service、dao、controller都交给SpringMVC去管理是可以的,但是假如用spring去管理
Contoller,它是访问不到这个类的,因为contoller是在springMVC容器中,假如在Spring配置直接扫描所有类包括
controller,而不配置springMVC的话,这样服务器发来的请求,将会出现404的问题,因为它找不到controller,spring
无法注入Controller

[plain] view plain copy
例如:
在applicationContext-service中配置:
<!-- 扫描包加载Service实现类 -->
<context:component-scan base-package="com.easybuy"></context:component-scan>
会扫描@Controller、@Service、@Repository、@Compnent

Springmvc.Xml中不扫描。
结论:springmvc。不能提供服务,因为springmvc子容器中没有controller对象。

3.为什么不直接在SpringMVC.xml中扫描所有类?

原则上我们是可以把service、dao
和controller都交给springMVC去管理,直接在SpringMVC配置文件中让它扫所有包就可以,但是出于未来扩展的考虑,spring
和springMVC分开配置,由 spring 去管理service,有利于以后扩展,即便以后加多个struct2也不用影响原有配置
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式