我的日常

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > SpringMVC应用中的容器
总共48087条微博

动态微博

查看: 1273|回复: 0

SpringMVC应用中的容器

[复制链接]

17

主题

6

听众

2959

金钱

六袋长老

该用户从未签到

跳转到指定楼层
楼主
发表于 2016-12-15 11:21:56 |只看该作者 |倒序浏览
springMVC应用中的容器
        1、容器类型
                在SpringMVC中有两种Spring容器。
               
                (1)Spring容器
                        这是由Spring管理的容器,也称为根容器。
                                <context-param>
                                        <param-name>contextConfigLocation</param-name>
                                        <param-value>classpath:applicationContext*.xml</param-value>
                                </context-param>
                                <listener>
                                        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
                                </listener>
                       
                (2)SpringMVC中的容器
                        在Spring MVC中,每个DispatcherServlet都持有一个自己的上下文对象WebApplicationContext。
                       
                                <servlet>
                                        <servlet-name>springMVC</servlet-name>
                                        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                                        <init-param>
                                                <param-name>contextConfigLocation</param-name>                 <!-- SpringMVC配置文件 -->
                                                <param-value>/WEB-INF/spring-servlet.xml</param-value>
                                        </init-param>
                                        <load-on-startup>1</load-on-startup>                                               <!-- Web应用启动时优先加载 -->
                                </servlet>
       
        2、容器继承关系
                在Spring中的ApplicationContext实例是可以有范围(scope)的。
                在SpringMVC应用中,每个DispatcherServlet都有一个自己的WebApplicationContext,它又继承了根WebApplicationContext中已经定义的所有bean。因此,在DispatcherServlet的初始化过程中,SpringMVC会根据配置文件创建其中所定义的bean。如果在根上下文中存在相同名字的bean,则它们将被新定义的同名bean覆盖。
               
        3、Web应用中容器实现(了解)
                在SpringMVC中,使用WebApplicationContext表示容器上下文。它继承自ApplicationContext,提供了一些Web应用经常需要用到的特性。它与普通的ApplicationContext不同的地方在于,它支持主题的解析,并且知道它关联到的是哪个servlet(它持有一个该ServletContext的引用)。
                WebApplicationContext被绑定在ServletContext中。如果需要获取它,你可以通过RequestContextUtils工具类中的静态方法来拿到这个web应用的上下文WebApplicationContext。

        4、项目中的容器应用
                由于业务层和数据层的Bean是全局共享的,它们配置在Spring的根容器中;表现层的Bean配置在DispatchSevlet的子容器中。由于DispathcServlet的子容器继承了根容器;这样,不同表现层实现可以共享相同的业务层和数据层,而各个表现层的实现之间互不相关。

                现在,在根容器的Spring配置文件中,只会配置扫描@Service和@Repository组件:
                        <context:component-scan base-package="com.hwadee.service,com.hwadee.dao">
                                <context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
                                <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />
                        </context:component-scan>
                       
                在DispatchServlet的Spring配置文件中,只会配置扫描@Controller组件:
                        <context:component-scan base-package="com.hwadee.controller">
                                <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
                        </context:component-scan>       


科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表