`

Spring管理Stucts和Hibernate

阅读更多
项目做完了,总结一下.该项目是利用SSH技术实现的.下面来谈谈Spring是如何管理Struts2和hibernate的.

一:

   先说说Spring是如何运作的吧. 在tomcat启动的时候, 先会在web.xml中加载两个句话,

Web.xml代码 
<context-param>   
  
   <param-name>contextConfigLocation</param-name>   
  
   <param-value>classpath:applicationContext.xml</param-value>   
  
</context-param>  

<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>  

<listener>
  <listener-class>
     org.springframework.web.context.ContextLoaderListner
   </listener-class>
</listener> 

在这里,ContextLoaderListener继承了ServletContextListener.因此,Spring会根据contextConfigLocation所指的Applicationcontext.xml自动装配xml文件中所用到的bean对象.



在applicationcontext.xml中bean的定义如下



Applicationcontext.xml代码 
<bean id="user" class="com.test.User" abstract="false" parent="people" scope="prototype">   
   <property name="dept" ref="dept"  ></property>   
</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文件中的配置来装配实例.



  

Java代码 
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
   <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>   
    </bean>  

<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来管理事务很方便的.



首先创建一个事务管理器



Java代码 
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">   
    <property name="sessionFactory" ref="sessionFactory">   
    </property>   
</bean>  

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory">
    </property>
</bean> 

声明一个通知, 并声明此通知受某一个事务管理器管理



 

Java代码 
<tx:advice id="txAdvice" transaction-manager="transactionManager">   
<tx:attributes>   
   <tx:method name="save*" />   
   <tx:method name="*" readonly="true" />   
</tx:attributes>   
</tx:advice>  

<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的切入点.





Java代码 
<aop:config>   
  <aop:advisor advice-ref="txAdvice" pointcut="execution(pulic * *..*.service.*.*(..))">   
   </aop:advisor>   
</aop:config>  

<aop:config>
  <aop:advisor advice-ref="txAdvice" pointcut="execution(pulic * *..*.service.*.*(..))">
   </aop:advisor>
</aop:config> 



这样, 只要经过service层就会进入事务管理.



分享到:
评论

相关推荐

    J2EE-Spring-Stucts-Hibernate架构-经典-435页.pdf

    在J2EE的开发过程中,Spring、Struts和Hibernate的结合使用是常见的选择,被称为SSH架构,这种架构模式能够有效地管理和协调应用程序的不同组件,提供高效且灵活的开发环境。通过本课程,学员将有机会深入了解和实践...

    Struts+Hibernate实现MVC

    Struts和Hibernate是Java开发中两个非常重要的框架,它们分别负责MVC(Model-View-Controller...在实际项目中,还可以结合Spring框架,形成SSH(Spring、Struts、Hibernate)架构,进一步增强应用的灵活性和可管理性。

    struts2.2.3+spring2.5.6+hibernate3.2+proxool0.9.1

    Struts2.2.3、Spring2.5.6、Hibernate3.2和Proxool0.9.1是四个重要的Java技术组件,它们在Web应用程序开发中扮演着关键角色。这个压缩包文件包含了这些技术的集成示例,旨在帮助开发者理解和实践如何将它们有效地...

    Spring2.5.2_中文参考手册CHM

    2. **Bean管理**:Spring容器负责创建、配置、管理和组装应用中的对象,也就是所谓的"bean"。开发者可以通过XML配置文件或注解来定义bean及其属性。 3. **AOP(面向切面编程)**:Spring提供了对面向切面编程的支持...

    SSH框架完美整合

    在整合过程中,通常会使用Spring管理Struts的Action及Service层组件,同时Spring还负责初始化和管理Hibernate的SessionFactory。此外,事务管理也是整合的重点,通常会利用Spring的AOP功能实现全局的事务控制。 ...

    stucts2描述

    1. **ValueStack内部结构**:`OgnlValueStack`是Struts2中用于存储和管理数据的关键组件。其内部包含了一个`CompoundRoot`对象,用于存放当前的Action对象,以及一个`Map, Object&gt;`对象,用于存储各种上下文信息,如...

    Spring和Struts框架学习总结

    - **数据访问与集成**:Spring框架提供了一套简洁的数据访问抽象层,支持多种持久化技术,如JDBC、Hibernate、JPA等,并且为这些技术提供了统一的异常处理模型,大大简化了数据访问层的开发。 - **事务管理**:...

    Java自学全能PPT

    【Java自学全能PPT】是一套全面覆盖Java开发技术和SSH框架的教程资料,旨在帮助学习者从基础到高级,系统地掌握Java编程语言以及在实际项目中广泛应用的Spring、Struts2和Hibernate三大框架。本资源包含了一系列PPT...

    JavaEE商店系统

    这个系统的核心是基于Struts、Hibernate和Spring这三大框架的集成应用,它们在JavaEE开发中扮演着重要的角色。 首先,Struts是一个开源的MVC(Model-View-Controller)框架,它简化了JavaWeb应用的开发。在商店系统...

    Room-Management-System-SAC-SYSU:中山大学新学生活动中心管理系统源代码

    如果是做做今天,我会使用spring + hibernate + stucts去写。这些框架对于一个大二的学生来说,有点遥远。 的源代码 该项目是在我还是大二学生的时候写的。 当然,该项目充满了错误。 但是它可以在服务器中稳定...

    ssh框架整合jar包

    structs2+spring+hibernate框架整合用到的jar包,这个是无缺失的,所有类都可以找到,jar包在WEB-INF/lib下可以找到,src里面有application.xml和Stucts2.xml的配置文件模版。欢迎下载使用

Global site tag (gtag.js) - Google Analytics