ssh 整合步骤及出现的问题
首先根据需要导入三大框架的jar包,写一个简单页面跳转action,配置struts.xml文件
问题1.在配置的时候,应注意导入spring的配置applicationContext.xml文件,要不然会出现报错。具体配置如下:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置访问路径范围 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
调通页面的简单访问。将struts的创建权交给spring的ioc工厂来创建
<action name="user_save" **class="userActionid"** method="save">
在applicationContext.xml文件配置action的bean。就完成的action的创建交给spring来进行管理。
接下来是业务层和dao层的编写,按照业务逻辑编写就行。
下来就是很大的一步(由于junnit废了)
先建立javabean的hbm.xml文件。hibernate的配置对应上就可以了
下来就是applicationContext.xml文件的配置。
配置service层的bean 并在aciton层将service层注入
同理dao层将 并在service层注入dao层
下来就是dao层要和数据进行打交道,dao层使用的是HibernateTemplate模板 ,HibernateTemplate使用的是sessionFactory来放置session工厂,sessionFactory中又包括连接池的数据源datasource,所以应该先配置datasource.
<!-- 配置数据源c3p0<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
配置数据源之后就应该配置sessionFactory。先引入datasource,在引入生成sql和格式化sql的语句,还mapping配置文件
org.hibernate.dialect.MySQL5InnoDBDialect
```
<!-- 显示sql语句 -->
<prop key="show_sql">true</prop>
<prop key="format_sql">true</prop>
</props>
</property>
<!-- 映射关系文件 -->
<property name="mappingResources">
<list>
<value>com/zxxz/vo/UserDTO.hbm.xml</value>
</list>
</property>
</bean>
下来就是配置HibernateTemplate模板bean,同样引入sessionFactory
<!-- hibernateTemplate模板 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
接下来是在dao层注入HibernateTemplate模板,就可以通过模板对应的方法来对数据进行增删改查。
最后配置事物。
<!-- 配置平台事物处理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
配置扫描事物的注解
<tx:annotation-driven transaction-manager="transactionManager"/>
在service添加事物的注解。ssh框架整合的小案例基本完成。