web.xml
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- 用于初始化Spring容器的Listener -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 定义整合SiteMesh必须的ActionContextCleanUp Filter -->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<!-- 定义整合SiteMesh和核心 Filter -->
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<!-- 定义Struts2的FilterDispathcer的Filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>img</servlet-name>
<servlet-class>org.yeeku.web.AuthImg</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>img</servlet-name>
<url-pattern>/authImg</url-pattern>
</servlet-mapping>
</web-app>
applicationContext.xml
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="jdbc:mysql://localhost/reg_login"/>
<!-- 指定连接数据库的用户名 -->
<property name="user" value="root"/>
<!-- 指定连接数据库的密码 -->
<property name="password" value="root"/>
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="20"/>
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="1"/>
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="1"/>
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="20"/>
</bean>
<!--定义了Hibernate的SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性-->
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator-->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean-->
<list>
<value>mgr</value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<!-- 此处可增加其他新的Interceptor -->
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<bean id="mgr" class="org.yeeku.service.impl.UserManagerImpl">
<property name="userDao" ref="userDao"/>
</bean>
<bean id="userDao" class="org.yeeku.dao.hibernate.UserDaoHibernate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
</beans>
struts整合spring有两种方式,一种方式是让spring来管理action,即在配置action的class属性时不指定该action的实现类而是指向spring容器中的beanid
第二种整合方式是利用spring的自动装配,当spring在创建action的实例时,利用spring的自动装配策略,将对应的业务逻辑组件注入action实例
分享到:
相关推荐
S2SH整合指的是Struts2、Spring和Hibernate这三个开源框架的集成应用,它们分别是MVC(Model-View-Controller)架构中的控制层、业务层和数据持久层的优秀解决方案。在Java Web开发中,S2SH整合能提供一个强大、灵活...
基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能
6. **配置文件**: S2SH整合还需要对各框架的配置文件进行设置,例如`struts.xml`、`spring-servlet.xml`、`hibernate.cfg.xml`等。这些配置文件定义了Action、服务和数据源的映射,以及事务管理等关键设置。 7. **...
**S2SH整合详解** S2SH,全称为Struts2、Spring和Hibernate的整合,是Java Web开发中一种常见的框架组合,用于构建高效、可维护的Web应用程序。这三个框架分别负责不同的职责:Struts2作为MVC(模型-视图-控制器)...
【S2SH整合配置】指的是将Struts 2、Spring和Hibernate这三大主流Java开源框架进行集成,以实现更高效、灵活的企业级Web应用程序开发。在这个整合中,JPA(Java Persistence API)被用来处理数据持久化,取代了传统...
在S2SH整合中,Spring主要负责事务管理和数据源配置,以及Struts2和Hibernate的集成。 **2. Struts2框架** Struts2是基于MVC设计模式的Web应用框架,负责处理HTTP请求,管理视图和控制器。它提供了强大的拦截器机制...
在S2SH整合中,Hibernate 3.5.6版本作为ORM(对象关系映射)工具,允许开发者通过对象模型来操作数据库,而无需编写SQL。它支持懒加载、缓存策略和复杂查询,使得数据库操作更加便捷。 **整合过程** S2SH的整合...
【标签】"s2sh整合完全包"强调了这个压缩文件的核心价值,即提供了一个完整的、预配置好的环境,用于整合Struts2、Spring和Hibernate这三大流行的Java Web开发框架。 【文件名称列表】中的"lib"可能是指包含所有s2...
在S2SH整合中,Spring作为应用上下文容器,管理着所有对象的生命周期和依赖关系。例如,这里可能会定义数据库数据源、Hibernate SessionFactory、Action类的bean等。Spring通过@Autowired注解或XML配置来实现对象间...
本压缩包"**s2sh整合详细jar**"显然是一份包含了这三个框架核心组件的集合,旨在帮助初学者快速搭建SSH整合环境。以下是对每个框架及其整合细节的详细解释: 1. **Struts2**:Struts2是一个基于MVC设计模式的Java ...
Struts2.0.14+Spring2.5+Hibernate3.2+Oracle10g+Tomcat6.0开发环境配置,有步骤图示 +web.xml+applicationContext.xml文件配置 还算齐全。。。
7. **测试与调试**:编写JUnit测试用例,验证各个层的交互是否正常,确保S2SH整合成功。 学习S2SH框架整合的过程中,了解每个组件的核心概念和工作原理至关重要。例如,Struts2的拦截器、Hibernate的实体映射、...
这三者结合,被称为S2SH整合,能够构建出高效、灵活且可维护的Java Web应用程序。 **Struts2框架**: Struts2是Struts1的升级版,它引入了拦截器(Interceptor)的概念,增强了动作(Action)与结果(Result)的...
非常适合初学者掌握ssh2整合的例子,献给初学者
【S2SH整合完美教程】 ...总结,S2SH整合涉及到多个层面的配置和交互,理解并掌握这些配置细节是成功构建基于这些框架的应用的关键。通过合理的配置和注解,我们可以实现高效的MVC架构,使应用程序更易于管理和维护。
这个压缩包提供了实现增删改查功能的源代码,以及完整的S2SH整合包,使得开发者可以直接运行项目,无需从零开始配置环境。 **Struts2** 是一个基于MVC设计模式的Action驱动框架,它负责处理用户的请求,并通过...
4. **整合过程**:S2SH的整合涉及到配置多个文件,如Struts的struts-config.xml、Spring的applicationContext.xml和Hibernate的hibernate.cfg.xml。开发者需要在这些配置文件中定义Action、Bean和实体类等,同时,还...
【S2SH整合详解】 S2SH整合是指将Struts2、Spring和Hibernate三大主流开源框架集成在一起,以实现高效、灵活的企业级Web应用开发。以下是详细的整合步骤和配置文件配置: 1. **Hibernate整合** - 首先,为项目...
标题 "s2sh整合所有的jar包" 指的是将Struts、Spring和Hibernate这三种技术集成所需的Java档案(JAR)文件集合在一起,便于在项目开发中快速引用和使用。这种整合通常被称为SSH框架,它是Java Web开发中的一个流行...
### 四、整合配置 在实际项目中,通常会通过Spring管理Hibernate的SessionFactory,然后在Struts2的Action中注入SessionFactory来操作数据库。这样,S2SH框架便完成了全面的整合。 总结来说,S2SH框架的配置涉及到...