ssh整合思想
ssh整合
第一步:导入ssh相关jar包
第二步:搭建struts环境
(1)创建 action struts.xml配置文件, 配置action
struts.xml约束
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
(2) 配置struts的过滤器
<!-- struts过滤 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
第三步:搭建hibernate环境
(1)创建实体类
(2)配置实体类与数据表映射关系
映射文件约束:
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
(3)创建hibernate核心配置文件
核心配置文件约束:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
(4)引入映射配置文件
第四步: 搭建spring核心配置文件
(1)创建spring核心配置文件
(2)由于第一次访问比较慢,让spring配置文件在服务器启动时加载(监听器)
配置监听器并指定spring核心配置文件位置
<!-- 配置监听器让spring配置文件在服务器启动时候加载 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 指定spring配置文件位置 -->
<context-param>
<param-name>contextLoaderListener</param-name>
<param-value>classpath:bean1.xml</param-value>
</context-param>
第五步: struts2与spring整合
(1)把action在spring中配置(action多实例)
<bean id="UserAction" class="com.bookstore.action.UserAction" scope="prototype"></bean>
prototype表示多实例,默认单实例
(2)在struts.xml中action标签class属性里面写bean的id值(如果直接写全路径,action就会被创建两次)
<action name="UserAction" class="UserAction">
第六步:spring与hibernate整合(注意导包)
(1)把hibernate核心配置文件中数据库配置在spring配置
<!-- 配置c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql:///bookstore"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
</bean>
(2)把sessionFactory创建交给spring
<!-- 把sessionFactory创建交给spring -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 由于在hibernate核心文件中没有配置数据库,数据库在spring中配置,注入dataSource -->
<property name="dataSource" ref="dataSource"></property>
<!-- 指定hibernate核心文件 -->
<property name="comfigLocations" value="classpath:hibernate.cfg.xml"></property>
</bean>
第七步:配置事务(注解方式@Transactional)
<!-- 事务配置 -->
<!-- 配置事物管理器 -->
<bean name="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- 注入sessionFactory -->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 开启注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
配置hibernateTemplate
<!-- 配置hibernateTemplate -->
<bean id="hibernateTemplate" classs="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>