# S2SH配置详解 ## 一、概述 在探讨S2SH配置的过程中,我们首先需要明确S2SH指的是Spring + Struts2 + Hibernate这三种技术的组合。这是一种非常流行的Java Web开发架构,广泛应用于企业级应用开发之中。其中: - **Spring**:负责业务逻辑层管理,提供依赖注入(DI)和面向切面编程(AOP)等功能。 - **Struts2**:负责表现层逻辑处理,是一款MVC框架。 - **Hibernate**:负责数据持久化,是一款ORM框架。 本次讨论将围绕给定的`web.xml`和`struts.xml`配置文件进行深入解析,并结合这些配置文件中的具体内容来阐述相关的知识点。 ## 二、`web.xml`配置分析 ### 2.1 Spring配置 在`web.xml`文件中,首先定义了Spring的初始化参数和监听器: ```xml <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> ``` - **`contextConfigLocation`**:指定Spring的核心配置文件的位置。这里指定了一个名为`applicationContext.xml`的配置文件,该文件通常用于定义Spring容器中Bean的配置。 - **`ContextLoaderListener`**:Spring提供的监听器,用于在Web应用程序启动时加载Spring的上下文配置。 此外,还有一个清理监听器: ```xml <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> ``` - **`IntrospectorCleanupListener`**:用于清理JavaBeans Introspector缓存,防止内存泄漏问题。 ### 2.2 Hibernate配置 为了实现事务的一致性,通常会在`web.xml`中配置一个过滤器,用以开启Session的生命周期与HTTP请求的生命周期相匹配,即`OpenSessionInViewFilter`: ```xml <filter> <filter-name>hibernateOpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> ``` - **`OpenSessionInViewFilter`**:开启Hibernate的Session,在视图渲染完成后关闭Session,确保每个HTTP请求都在同一个Session中执行。 接着是过滤器映射: ```xml <filter-mapping> <filter-name>hibernateOpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这使得所有进入系统的HTTP请求都会经过此过滤器,从而自动管理Session。 ### 2.3 Struts2配置 对于Struts2框架,`web.xml`中也配置了一个过滤器: ```xml <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` - **`StrutsPrepareAndExecuteFilter`**:这是Struts2的核心过滤器,它负责初始化Struts框架以及拦截所有的HTTP请求并执行相应的Action。 通过这种方式,可以确保所有请求都被Struts2框架正确处理。 ## 三、`struts.xml`配置分析 ### 3.1 Struts2配置详解 `struts.xml`文件是Struts2的核心配置文件,用于定义框架的行为和规则。 #### 3.1.1 Spring对象工厂 ```xml <constant name="struts.objectFactory" value="spring"/> ``` - **`struts.objectFactory`**:指定Struts2使用的对象工厂为Spring。这意味着Struts2中的Action对象等将由Spring容器创建和管理。 #### 3.1.2 国际化编码 ```xml <constant name="struts.i18n.encoding" value="utf-8"/> ``` - **`struts.i18n.encoding`**:设置国际化资源文件的字符集为UTF-8,确保多语言支持时文本能够正确显示。 #### 3.1.3 公共包路径 ```xml <constant name="struts.convention.default.parent.package" value="default"/> <constant name="struts.convention.package.locators" value="web"/> <constant name="struts.convention.package.locators.basePackage" value="org.baseLib"/> ``` - **`struts.convention.default.parent.package`**:默认的父包名,用于简化Action配置。 - **`struts.convention.package.locators`** 和 **`struts.convention.package.locators.basePackage`**:这两个配置项用于指定Action类的搜索路径,通过这些配置,Struts2可以自动扫描指定路径下的Action类并注册它们。 以上配置共同构成了S2SH架构中的关键配置细节。通过这些配置,可以有效地集成Spring、Struts2和Hibernate三大组件,实现高效的数据访问和业务逻辑处理。同时,这些配置也为开发者提供了良好的扩展性和维护性。
- 粉丝: 122
- 资源: 78
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 章节1:Python入门视频
- 无需样板的 Python 类.zip
- ESP32 : 32-bit MCU & 2.4 GHz Wi-Fi & BT/BLE SoCs
- 博物馆文博资源库-JAVA-基于springBoot博物馆文博资源库系统设计与实现
- 旅游网站-JAVA-springboot+vue的桂林旅游网站系统设计与实现
- 小说网站-JAVA-基于springBoot“西贝”小说网站的设计与实现
- 游戏分享网站-JAVA-基于springBoot“腾达”游戏分享网站的设计与实现
- 学习交流-JAVA-基于springBoot“非学勿扰”学习交流平台设计与实现
- EDAfloorplanning
- 所有课程均提供 Python 复习部分.zip