注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(三):通过 @Autowired的使用来消除 set ,get方法。

原创 2008年10月01日 09:25:00
通过 (一)(二)的介绍。我们已经做了初步的简化程序。
但是在我们编写spring 框架的代码时候。一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get 和 set方法。虽然 可以通过eclipse等工具来自动生成。但是还是会引起程序阅读性上的不便。那么既然注解这么强大。是否可以也把他精简掉呢?

当然可以。这个标签就是@Autowired 

Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

要实现我们要精简程序的目的。需要这样来处理:

  • 在applicationContext.xml中加入:
  1. <!-- 该 BeanPostProcessor 将自动对标注 @Autowired 的 Bean 进行注入 -->   
  2.     <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

  • 修改在原来注入spirng容器中的bean的方法。在域变量上加上标签@Autowired,并且去掉 相应的get 和set方法
    1. /*国家,省份,城市,城区信息维护服务
    2.  * Created on 2008-9-26
    3.  *
    4.  * 徐泽宇 roamer
    5.  */
    6. package com.firemax.test.service;
    7. import java.util.ArrayList;
    8. import java.util.Iterator;
    9. import java.util.List;
    10. import org.apache.commons.logging.Log;
    11. import org.apache.commons.logging.LogFactory;
    12. import org.dom4j.Document;
    13. import org.dom4j.DocumentHelper;
    14. import org.dom4j.Element;
    15. import org.springframework.beans.factory.annotation.Autowired;
    16. import com.firemax.test.hibernate.AlcorTCitys;
    17. import com.firemax.test.hibernate.AlcorTCitysDAO;
    18. import com.firemax.test.hibernate.AlcorTCountries;
    19. import com.firemax.test.hibernate.AlcorTCountriesDAO;
    20. import com.firemax.test.hibernate.AlcorTProvinces;
    21. import com.firemax.test.hibernate.AlcorTProvincesDAO;
    22. import com.firemax.test.hibernate.AlcotTDistrict;
    23. import com.firemax.test.hibernate.AlcotTDistrictDAO;
    24. public class CountryService {
    25.     private static Log logger = LogFactory.getLog(CountryService.class);
    26.     @Autowired
    27.     private AlcorTCountriesDAO  alcorTCountriesDAO;
    28.     @Autowired
    29.     private AlcorTProvincesDAO  alcorTProvincesDAO;
    30.     @Autowired
    31.     private AlcorTCitysDAO          alcorTCitysDAO;
    32.     @Autowired
    33.     private AlcotTDistrictDAO       alcotTDistrictDAO;
    34.     
    35.     public CountryService(){
    36.         
    37.     }
    38.     
    39.     /**修改一个国家信息
    40.      * @param alcorTCountries
    41.      * @throws Exception
    42.      */
    43.     public void updateCountry(AlcorTCountries alcorTCountries ) throws Exception{
    44.         this.alcorTCountriesDAO.update(alcorTCountries);
    45.     }
    46.     
    47.     ....
    48.     //这里去掉了哪些DAO 变量的get 和set 方法。
    49.     
    50.  
    51. }

  • 在applicatonContext.xml中 把原来 引用的<porpery >标签也去掉。
    1. <bean id="CountryService" class="com.firemax.test.service.CountryService">
    2.         <property name="alcorTCountriesDAO" ref="AlcorTCountriesDAO" />
    3.         <property name="alcorTProvincesDAO" ref="AlcorTProvincesDAO" />
    4.         <property name="alcorTCitysDAO" ref="AlcorTCitysDAO" />
    5.         <property name="alcotTDistrictDAO" ref="AlcotTDistrictDAO" />
    6.  </bean>
    修改成
    1. <bean id="CountryService" class="com.firemax.test.service.CountryService">
    2.         
    3. </bean>
    当然,我们也可以在构造函数上使用@Auwowired 注解 。如果构造函数有两个入参,分别是 bean1 和 bean2,@Autowired 将分别寻找和它们类型匹配的 Bean,将它们作为 CountryService (Bean1 bean1 ,Bean2 bean2) 的入参来创建 CountryService  Bean。
在运行一下你的业务程序。如果没有错误。恭喜你。这个步骤我们又完成了。


版权声明:本文为博主原创文章,未经博主允许不得转载。

JPA基础知识----JPA 基本注解,JPA API

JPA 是什么     Java Persistence API:用于对象持久化的 API     Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层 JPA和Hi...
  • oChangWen
  • oChangWen
  • 2016年10月11日 17:08
  • 6356

JPA常用注解

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。         JPA由EJB 3.0软件...
  • alik20
  • alik20
  • 2016年11月11日 19:19
  • 1611

梳理Tree遍历-四种基本方法+JPA注解解决

已知已有对象为Tree。 public class Tree { long id; String name; Tree parent; Set chi...
  • u014586894
  • u014586894
  • 2016年06月12日 22:16
  • 649

通过 @Autowired的使用来消除 set ,get方法 ---- Spring · JPA ·hibernate 的使用方法

编写spring 框架的代码时候。一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get和 set方法。虽然可以通过eclipse等工具来自动生成...
  • lpz283929516
  • lpz283929516
  • 2010年01月18日 14:35
  • 8925

注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(一):消除hibernate中

以下几篇文章简单的介绍一下jpa 和 spring2.5 hibernate3.2 整合配置的一个过程。纯粹个人经验只谈。如果有错误,请各位留言指出。 本系列重点是涉及 配置过程 ,对注释的...
  • xiaokaibupabupa
  • xiaokaibupabupa
  • 2011年09月19日 10:45
  • 255

JPA & Hibernate 注解

@Entity(name="EntityName")  必须,name为可选,对应数据库中一的个表  2、@Table(name="",catalog="",schema="")  可选,通...
  • u013628152
  • u013628152
  • 2015年04月10日 14:50
  • 1665

Hibernate(JPA)注解大全

@Entity(name=”EntityName”) 必须,name为可选,对应数据库中一的个表 @Table(name=””,catalog=””,schema=””) 可选,通常和@En...
  • dragonpeng2008
  • dragonpeng2008
  • 2016年08月24日 10:20
  • 558

注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(二):进一步消除 hibernate.cfg.xml

通过上面一步骤。我们简化了hibernate中扰人的 xxxxx.hbm.xml文件。那么是否可以再进行简化呢?那么,我们在这一步骤的目的,就是把整个 hibernate.cfg.xml都给简化了。依...
  • remote_roamer
  • remote_roamer
  • 2008年10月01日 08:33
  • 8260

hibernate的注解为何要在属性的get方法上声明

不单是hibernate的注解,很多其他的注解,需要获取属性或者对象的,都是在get方法上声明的。 因为get方法显然的就是外部获取类内属性的方法,例如我要在数据库里面生成这个entity类对应的表,...
  • huzhigenlaohu
  • huzhigenlaohu
  • 2014年11月18日 10:48
  • 1800

JPA注解

第 1 章 创建一个注解项目 1.1. 系统需求 首先从Hibernate官方网站下载并解压Hibernate Annotations的发布...
  • zygzzp
  • zygzzp
  • 2013年04月16日 17:54
  • 2291
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(三):通过 @Autowired的使用来消除 set ,get方法。
举报原因:
原因补充:

(最多只允许输入30个字)