关于Spring和SpringMVC的配置

来源:5-14 spring、springmvc配置实操

楚楚提

2019-03-26

之前再做SpringMVC项目时,只需要一个spring配置文件,交给dispatcherServlet,让他负责IOC容器的初始化就好了,因为SpringMVC本身自带Spring的bean context aop core  4个核心包,SpringMVC本身就相当于Spring了,他也有自己的IOC容器

但是本项目中在spring ioc容器初始化的时候,好像是用到了两个配置文件,一个是spring的,由监听器负责整合web容器和spring容器:

http://img.mukewang.com/szimg/5c9a1b620001eb2712540252.jpg


另外一个就是SpringMVC的,由dispatcherServlet负责整合:

http://img.mukewang.com/szimg/5c9a1b9500014fcb09860372.jpg


这样一来是会产生一个spring的ioc容器,还是两个ioc容器呢?

为什么不直接使用一个配置文件,非要搞成两个?

写回答

2回答

楚楚提

提问者

2019-03-27

在网上搜了一下,发现是有两个容器,spring的容器是springMVC的父容器.

但是我自己平时编程的时候发现一个问题,就是@controller对于spring  和  springMVC是有不同意义的,对于前者类似于@repository或者@Service,主要是表达这个bean和什么功能相关.

但是对于SpringMVC @Controller注释意味着处理请求的handler,这是很关键的,不能用其他注解替换的

而本项目中两个容器扫描包时都是com.mmall包,那么对于其中的@controller注解,他们又是怎么处理的,以及怎么区分的呢?????

0
4
楚楚提
回复
geelylucky
这篇文章还是其他我在其他地方看到的文章,意思还好像是说springmvc在spring之后扫描时,只扫描那个controller注解,具体就不知道对不对了
2019-03-27
共4条回复

geelylucky

2019-03-27

亲爱的同学,你好,我是geely老师的助教。

是两个IOC容器,是可以只用spring mvc的,用两个是为了做到单一原则,spring管理业务逻辑层,spring mvc负责对外的接口。

0
1
楚楚提
关键是他们扫描的包是一样的,岂不是会生成重复的bean?
2019-03-27
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程