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>