Struts2+Spring+Hibernate整合
在SSH2框架中,Spring充当了一个JavaBean容器的作用,Spring使用IOC(依赖注入)和AOP(面向切面编程)技术接管了Hibernate的DAO、事务和Struts的action对象及service业务层。
MVC分别使用:(1)M层,Spring;(2)V层,JSP;(3)C层,Struts;(4)持久层,Hibernate
我用的是myeclipse8.6,tomcat6.0.30,jdk6.0,和sqlServer2000版本的。
在开发工程中所用到的jar包如下图所示:
我是直接先引进去的。
来做一个示例讲解三者的整合:一个登录的结构
1.新建数据库 stuInfo
其中数据库中有一个表userInfo,字段如下图所示:
Id是唯一标识符, 自动增长,userName和passWord是用户名和密码
2.开始准备整合工作
新建一个webProject项目
导入所需要的jar包,前面截图已经给出来了。
3.添加stucts2的支持
选择stucts2的目录放在src下,然后打开并增加下列代码进去
<package name="stucts2" extends="stucts-default">
web布局框架</package>
对于l的修改我们放在最后三个框架全部整合好后进行修改
4.添加数据连接
如图所示:
这里我用的是jtds
下面我们在src下建立一个包,命名为ity,存放实体类
添加hibernate的支持
其中我们在最后一步是否选择create sessionFactory的时候取消
点击完成即可
然后我们将下列代码加进去
<property name="hibernate.show_sql">true</property>
<property name="format_sql">true</property>
这样我们执行程序的时候会再控制台显示相应的hql查询
如下所示:
5.添加spring的支持
点击完成即可
这样就添加了Spring的支持
从上述代码中可以看到,Spring封装了Hibernate的操作,用Spring的方式接管了Hibernate的Session创建及销毁,创建SessionFactory的周边信息。
6.此时我们配置l文件
将如下代码加到l中
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>lazyLoadingFilter</filter-name>
<filter-class>hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>lazyLoadingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
《这些代码等你用的时间久了自然就会了解》这里不做太多的讲述
添加下列代码到stucts2中
struts.objectFactory的作用是使用Spring来管理struts2的action。
在l中添加事务的管理,这里若是不添加在我们以后做curd操作的时候会是一直不停的打开着数据库操作,而没有执行关闭的操作
引入:《beans》如下所示
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance" xmlns:aop="/schema/aop"
xmlns:tx="/schema/tx" xmlns:p="/schema/p"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans-2.5.xsd
/schema/tx
/schema/tx/spring-tx.xsd
/schema/aop
/schema/aop/spring-aop.xsd">
<!-- 配置事务管理 -->
<bean id="transactionManager"
class="hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="allManagerMethod"
expression="execution(* com.hubu.service.*.*(..))" />
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论