项目做完了,总结一下.该项目是利用SSH技术实现的.下面来谈谈Spring是如何管理Struts2和hibernate的.
一:
先说说Spring是如何运作的吧. 在tomcat启动的时候, 先会在web.xml中加载两个句话,
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListner
</listener-class>
</listener>
在这里,ContextLoaderListener继承了ServletContextListener.因此,Spring会根据contextConfigLocation所指的Applicationcontext.xml自动装配xml文件中所用到的bean对象.
在applicationcontext.xml中bean的定义如下
<bean id="user" class="com.test.User" abstract="false" parent="people" scope="prototype">
<property name="dept" ref="dept" ></property>
</bean>
当id中需要包含斜杠"/" 等特殊字符时,要将id换乘name的同等的. 还有一个特别说明的是,这里的id和name的值必须是唯一的.
二: Spring是如何管理hibernate的.以及Spring管理的事务.
Spring加载之后,会根据applicationcontext.xml文件中的配置来装配实例.
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
他会根据hibernate.cfg.xml所配置的加载hibernate配置信息.并实例化sessionFactory.并且如果Dao要受Spring管理, 那么此Dao类需要继承HibernateDaoSupport.
Spring提供的事务管理有两种方式,编程式的和申明式的. 编程式的繁琐,我一般不喜欢用.最喜欢的一种是利用Spring封装的aspectJ, 利用Aop来管理事务很方便的.
首先创建一个事务管理器
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean>
声明一个通知, 并声明此通知受某一个事务管理器管理
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" />
<tx:method name="*" readonly="true" />
</tx:attributes>
</tx:advice>
上面的一段话说明了txAdvice受transactionManager事务管理器管理, 并且管理save打头的方法. 其余的都不使用事务管理.
最后利用advisor配置advice的切入点.
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(pulic * *..*.service.*.*(..))">
</aop:advisor>
</aop:config>
这样, 只要经过service层就会进入事务管理.
分享到:
相关推荐
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
这是一个struts 1.2 + spring 2.5 + hibernate 3.2框架demo, 运行环境为eclipse 3.2 + tomcat 5.5 + oracle 11g
Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1
spring+hibernate+struts
有关Struts2+Spring+Hibernate和Struts2+Spring+Ibatis的整合实例demo 原创,完全基于eclipse开发
必备软件 学习struts2项目struts2+spring4+hibernate 必备
Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
Spring如何整合Hibernate和struts --cglib来实现事务管理.rtf.rtf
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
这是一个hibernate struts2 spring 三大矿建整合的一个项目。
maven整合spring+hibernate+struts2
基本的spring+hibernate+struts1架构 基本的spring+hibernate+struts1架构 基本的spring+hibernate+struts1架构
这是对spring_hibernate_struts2的理解,可以在面试中简要的抓住重点进行陈述。
Hibernate、Spring和Struts工作原理及使用理由
用spring security3 spring3.0 hibernate3.5 struts2整合的安全框架,欢迎大家下载
采用Spring+Hibernate+Struts架构,实现资源共享,用户可以注册登录,上传资源,下载资源,评论资源,并且通过别人下载自己上传的资源赚取相对应的资源分数等功能
让spring管理struts,spring管理hibernate,一步一步,非常简单
最新 ssh Jar包,搭载完整框架,完美支持ssh系统,最新官网下载
Struts1+Spring2+Hibernate2整合详细例子
这是一个spring2.5+hibernate3.1+struts1.2的搭建案例,主要是一个转帐的案例,通过spring添加事务