`
gabrieltong
  • 浏览: 16264 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(四

    博客分类:
  • java
阅读更多

在(三)里面。我们引入了 <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/& gt;这个bean 来处理@Autowired注解。

其实在spring 里面还有其他三个BeanPostProcessor 。总共有四个,分别是:
AutowiredAnnotationBeanPostProcessor
CommonAnnotationBeanPostProcessor
PersistenceAnnotationBeanPostProcessor
equiredAnnotationBeanPostProcessor  

但是直接在 Spring 配置文件中定义这些 Bean 显得比较笨拙。Spring 为我们提供了一种方便的注册这些 BeanPostProcessor 的方式,这就是 <context:annotation-config/>

Spring 2.1 添加了一个新的 context 的 Schema 命名空间,该命名空间对注释驱动、属性文件引入、加载期织入等功能提供了便捷的配置。我们知道注释本身是不会做任何事情的,它仅提供元数据信息。要使元数 据信息真正起作用,必须让负责处理这些元数据的处理器工作起来。

这段代码就是 启用了这个命名空间后的applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                                                http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-2.5.xsd
                                                http://www.springframework.org/schema/tx  http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
        >
  
  
       <bean id="entityManagerFactory"
           class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
           <property name="persistenceUnitName" value="testerPU" />
       </bean>
       <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
           <property name="entityManagerFactory" ref="entityManagerFactory" />
       </bean>
  
       <tx:annotation-driven transaction-manager="transactionManager" />
  
       <bean id="transactionInterceptor"
           class="org.springframework.transaction.interceptor.TransactionInterceptor">
           <!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
           <property name="transactionManager">
               <ref local="transactionManager" />
           </property>
           <property name="transactionAttributes">
               <!-- 下面定义事务(指service里面的方法)传播属性 -->
               <props>
                   <prop key="insert*">PROPAGATION_REQUIRED</prop>
                   <prop key="update*">PROPAGATION_REQUIRED</prop>
                   <prop key="save*">PROPAGATION_REQUIRED</prop>
                   <prop key="add*">PROPAGATION_REQUIRED</prop>
                   <prop key="update*">PROPAGATION_REQUIRED</prop>
                   <prop key="remove*">PROPAGATION_REQUIRED</prop>
                   <prop key="delete*">PROPAGATION_REQUIRED</prop>
                   <prop key="get*">PROPAGATION_REQUIRED,readOnly
                   </prop>
                   <prop key="find*">PROPAGATION_REQUIRED,readOnly
                   </prop>
                   <prop key="load*">PROPAGATION_REQUIRED,readOnly
                   </prop>
                   <prop key="change*">PROPAGATION_REQUIRED</prop>
                   <prop key="count*">PROPAGATION_REQUIRED</prop>
                   <prop key="*">PROPAGATION_REQUIRED</prop>
               </props>
           </property>
       </bean>
       
       <!-- 该 BeanPostProcessor 将自动对标注 @Autowired 的 Bean 进行注入 -->
       <!--  这个Processor 已经被 <context:annotation-config/> 所简化   
       <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
       -->
       <context:annotation-config/>
       
       
       <!-- 定义自动代理BeanNameAutoProxyCreator -->
       <bean id="beanNameAutoProxyCreator"
           class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
           <!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
           <property name="beanNames">
               <list>
                   <value>*Service</value>
               </list>
           </property>
           <!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器  -->
           <property name="interceptorNames">
               <list>
                   <!-- 此处可增加其他新的Interceptor -->
                   <value>transactionInterceptor</value>
               </list>
           </property>
       </bean>
  
  
  
  
  
       <bean id="AlcorTCountriesDAO" class="com.firemax.test.hibernate.AlcorTCountriesDAO">
           <property name="entityManagerFactory" ref="entityManagerFactory" />
       </bean>
       <bean id="AlcorTProvincesDAO" class="com.firemax.test.hibernate.AlcorTProvincesDAO">
           <property name="entityManagerFactory" ref="entityManagerFactory" />
       </bean>
       <bean id="AlcotTDistrictDAO" class="com.firemax.test.hibernate.AlcotTDistrictDAO">
           <property name="entityManagerFactory" ref="entityManagerFactory" />
       </bean>
       <bean id="AlcorTCitysDAO" class="com.firemax.test.hibernate.AlcorTCitysDAO">
           <property name="entityManagerFactory" ref="entityManagerFactory" />
       </bean>
  
       <bean id="CountryService" class="com.firemax.test.service.CountryService"/>
  
  
   </beans>
 注意2段标红的内容,就是这次更新的配置内容。在配置文件中使用 context 命名空间之前,必须在 <beans> 元素中声明 context 命名空间。
分享到:
评论

相关推荐

    Spring2.5+Hibernate3.2开发手册

    Spring 2.5 和 Hibernate 3.2 是两个在企业级Java应用开发中非常重要的框架。Spring 是一个全面的后端应用框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及大量的集成支持。而Hibernate 则是...

    struts2.0 spring2.5 hibernate3.2 注解最新框架

    Struts2.0、Spring2.5和Hibernate3.2是经典的Java企业级开发框架,它们在2000年代末至2010年初广泛应用于构建大型Web应用程序。这三大框架的集成提供了完整的MVC(Model-View-Controller)架构,支持服务层和持久层...

    jersey+spring2.5+hibernate3.3+jpa

    标题 "jersey+spring2.5+hibernate3.3+jpa" 指的是一种集成技术,将轻量级的RESTful服务框架Jersey、企业级应用框架Spring 2.5、持久层框架Hibernate 3.3以及Java Persistence API(JPA)结合在一起,以实现高效且...

    spring2.5-hibernate3.04_API

    《Spring 2.5与Hibernate 3.04 API详解》 在软件开发领域,Spring框架和Hibernate ORM工具是Java开发者的重要伙伴。本资源“spring2.5-hibernate3.04_API”提供了这两个关键库的API帮助文档,旨在帮助开发者深入...

    Spring之Spring2.5集成Hibernate3.6

    这篇博客“Spring之Spring2.5集成Hibernate3.6”主要探讨了如何将两个经典的开源框架——Spring 2.5和Hibernate 3.6进行整合,以实现数据持久化的高效管理。 Spring 2.5版本是Spring框架的一个重要里程碑,它引入了...

    Struts2.0+spring2.5+hibernate3.2

    Struts2.0、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,通常被称为SSH(Struts2、Spring、Hibernate)集成框架。这个组合在2000年代末到2010年代初广泛应用于构建大型、复杂的企业级Web应用。SSH框架...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    本教程将探讨如何将Struts2.1、Spring2.5和Hibernate3.3这三大流行框架进行整合,以构建一个强大的Java Web应用程序。首先,我们先关注Spring2.5与Hibernate3.3的整合,这是整个集成的第一步。 Spring2.5是Spring...

    spring2.5 + jpa(hibernate3) 实例源码

    【标题】"spring2.5 + jpa(hibernate3) 实例源码"涉及的核心技术是Spring 2.5框架与Java Persistence API (JPA)的整合,其中JPA的具体实现是Hibernate 3。这个实例提供了如何在Spring环境中配置和使用JPA进行数据库...

    spring2.5 + hibernate3.2 实例源码

    标题 "spring2.5 + hibernate3.2 实例源码" 涉及到的是两个非常关键的Java企业级开发框架:Spring 2.5和Hibernate 3.2。这个实例源码提供了如何将这两个框架集成并进行实际应用的示例。 Spring 2.5是Spring框架的一...

    Spring2.5+Hibernate3.3+Struts1.3整合需要用到的所有jar文件

    Spring 2.5版本引入了许多增强的功能,如支持JSR-303 Bean Validation、改进的AOP代理、更灵活的XML配置以及基于注解的配置支持。这使得开发者可以更加方便地实现依赖注入,减少XML配置的工作量。 Hibernate 3.3...

    springMVC+hibernage+spring(基于spring2.5和hibernate3.0)jar包

    Spring MVC、Hibernate 和 Spring 是Java开发...尽管当前版本已经更新至Spring 5和Hibernate 5,但Spring 2.5和Hibernate 3.0的组合仍广泛应用于许多现有项目中,理解其工作原理和配置方法对于Java开发者来说至关重要。

    Spring2.5 + JPA(Hibernate)实现

    标题 "Spring2.5 + JPA(Hibernate)实现" 指的是在Spring框架的2.5版本中集成Java Persistence API (JPA) 和Hibernate ORM框架来管理数据库操作。这通常涉及利用Spring的IoC(Inversion of Control)和AOP(Aspect ...

    struts1+spring2.5+hibernate整合jar包

    整合Hibernate时,需要包含hibernate-core、hibernate-entitymanager、hibernate-jpa-2.0-api等jar包,并且还需要相应的JDBC驱动,如mysql-connector-java。 4. **SSH整合**: 整合这三个框架,首先需要确保各自的...

    Struts1.3 spring2.5 JPA 所需jia包

    在Spring2.5中,你可以使用XML配置或注解来声明bean,它支持多种持久化策略,包括JDBC、Hibernate和JPA。 JPA(Java Persistence API)是Java平台上的一个标准,提供了ORM(对象关系映射)的能力,允许开发者以面向...

    Spring2.5整合JPA

    **Spring 2.5 整合 JPA 概述** Spring 框架以其高度的灵活性和可扩展性,已经成为Java开发中不可或缺的部分。在Spring 2.5版本中,它进一步增强了对Java Persistence API (JPA)的支持,使得开发者能够更加方便地将...

    Struts2+Spring2.5+Hibernate3(JPA)+ExtJS3基本后台

    Struts2、Spring2.5、Hibernate3(JPA)和ExtJS3是构建现代企业级Web应用的四大核心技术,它们各自在应用架构中扮演着关键角色。下面将详细阐述这些技术及其组合使用时的基本概念和功能。 1. **Struts2**:Struts2...

    Spring2.5整合JPA(Hibernate实现)所需的JAR包

    在本场景中,我们关注的是如何将Spring 2.5与JPA结合,并特别通过Hibernate作为JPA的实现来构建项目。以下是你提到的各个JAR包的作用和它们在整合过程中的角色: 1. **spring.jar**: 这是Spring框架的核心库,包含...

    struts2+spring2.5+hibernate3.2 例子

    Struts2、Spring2.5和Hibernate3.2是经典的Java Web开发框架组合,它们各自在应用程序的不同层面提供了强大的功能。下面将详细解释这三个框架以及它们如何协同工作。 **Struts2** Struts2是一个基于MVC(Model-View...

    学习Spring 2.5和Hibernate 3的代码示例

    在Spring中,我们可以使用`HibernateTemplate`或`HibernateDaoSupport`类来简化Hibernate的使用,或者使用JPA的`EntityManager`和`EntityTransaction`。Spring还提供了`LocalSessionFactoryBean`和`...

Global site tag (gtag.js) - Google Analytics