[ssm实战]SSM整合双容器问题

我们在使用ssm框架开发应用时,需要将三个框架进行整合。其中ss框架的整合本质上就是两个spring容器的整合,因为我们知道springmvc框架本质也是一个spring容器,所以这里所谓的整合就是说在web容器中配置两个spring容器,并让他们各司其职:spring管理service,dao,事务管理等相关的组件的注入,springmvc管理逻辑控制相关的组件controller。
这种整合目前我所知道的有三种方式。

1.只在web容器中配置一个spring容器

这种方式虽然会方便一些,避免了一些问题,但是如果我们的项目过于庞大,显然是不方便管理的。这种方式就是在spring的配置文件中使用import引入springmvc的配置文件。

2.在web容器中配置两个spring容器(但是两个spring容器并不各司其职)

这种方式是在web容器中配置spring容器,并且配置springmvc的dispatcherservlet。这种方式有一个弊端:就是两个spring容器都扫描了应用中的所有的组件,也就是说例如对应同一个service,他同时存在于两个容器中。看到这里我们可能会想,那么我们注入service时会出错么,答案是不会。虽然这样说,但是还是有弊端的,例如我们在spring中配置的事务管理,那么,如果我们注入的是springmvc中的组件,那么就会出现问题,就是说我们注入的组件没有事务管理的功能。

3,在web容器中配置两个spring容器(两个spring容器各司其职)

这种方式和第二种方式很相似,但是在配置两个spring容器的扫描方式时会过滤一些组件,以此让两个容器各司其职。

posted @ 2020-06-05 10:05  小桃无主花自开  阅读(327)  评论(0编辑  收藏  举报