`
zjeers
  • 浏览: 38442 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Bean Wrapper (spring)

阅读更多

从Quick Start的例子中可以看到,所谓依赖注入,即在运行期由容器将依赖关系注入到组件之中。
讲的通俗点,就是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法进
行设定。


我们知道,如果动态设置一个对象属性,可以借助Java的Reflection机制完成:

Class cls =  Class.forName("net.xiaxin.beans.User"); 
Method mtd = cls.getMethod("setName",new Class[]{String.class}); 
Object obj = (Object)cls.newInstance(); 
mtd.invoke(obj,new Object[]{"Erica"}); 
return obj; 

 

 

 

 

  上面我们通过动态加载了User类,并通过Reflection调用了User .setName方法设置其name属性。
对于这里的例子而言,出于简洁,我们将类名和方法名都以常量的方式硬编码。假设这些常量都是通过配
置文件读入,那我们就实现了一个最简单的BeanWrapper。这个BeanWrapper的功能很简单,提供一个
设置JavaBean属性的通用方法(Apache BeanUtils 类库中提供了大量针对Bean的辅助工具,如果有兴
趣可以下载一份源码加以研读) 。
Spring BeanWrapper基于同样的原理,提供了一个更加完善的实现。

 

 

  看看如何通过Spring BeanWrapper操作一个JavaBean: 

Object obj = Class.forName("net.xiaxin.beans.User").newInstance(); 
 
BeanWrapper bw = new BeanWrapperImpl(obj); 
bw.setPropertyValue("name", "Erica"); 
 
System.out.println("User name=>"+bw.getPropertyValue("name")); 

   对比之前的代码,相信大家已经知道BeanWrapper的实现原理。
  诚然,通过这样的方式设定Java Bean属性实在繁琐,但它却提供了一个通用的属性设定机制,而这
样的机制,也正是Spring依赖注入机制所依赖的基础。
通过BeanWrapper,我们可以无需在编码时就指定JavaBean的实现类和属性值,通过在配置文件
加以设定,就可以在运行期动态创建对象并设定其属性(依赖关系) 。
  上面的代码中,我们仅仅指定了需要设置的属性名“name”,运行期,BeanWrapper将根据Java
Bean规范,动态调用对象的“setName”方法进行属性设定。属性名可包含层次,如对于属性名

“address.zipcode”,BeanWrapper会调用“getAddress().setZipcode”方法。

分享到:
评论

相关推荐

    Spring开发指南_夏昕

    Spring框架通过Bean Wrapper、Bean Factory和ApplicationContext等机制对Bean进行管理和封装。 - **Bean Wrapper**:提供了一种通用的方式来访问和操作Bean属性。 - **Bean Factory**:是最基本的容器,负责创建和...

    spring框架,技术详解及使用指导

    - **Bean Wrapper**:Bean Wrapper提供了一种封装Bean的方法,它支持读取和设置Bean的属性。 - **Bean Factory**:Bean Factory是Spring框架中最基本的容器,它负责创建Bean实例、配置Bean属性以及管理Bean的生命...

    spring框架,技术详解及使用指导.pdf

    - **Bean Wrapper**:Spring提供了Bean Wrapper接口,用于包装对象,从而能够管理对象的状态和生命周期。 - **Bean Factory**:这是Spring中最基本的IoC容器,负责实例化、定位和配置应用程序中的对象,即Bean。 - *...

    Spring开发指南

    Bean Wrapper提供了一种通过包装器模式来操作Bean属性的方式,而Bean Factory则是Spring容器,负责管理Bean的生命周期,包括创建、配置、管理以及销毁Bean。 ApplicationContext是Bean Factory的扩展,它除了具备...

    Spring 开发指南

    Spring通过Bean Wrapper和Bean Factory等机制实现了对Bean的封装和管理: - **Bean Wrapper**:提供了对Bean属性的访问和操作接口,支持属性的读取、设置和监听。 - **Bean Factory**:是最基本的Bean容器,负责...

    spring技术详解

    Spring框架通过Bean Wrapper和Bean Factory等机制来管理和封装Bean。 - **Bean Wrapper**:提供了对Bean属性的访问和操作。它可以用来获取或设置Bean的属性值。 - **Bean Factory**:是Spring中最基本的IoC容器,...

    spring开发指南.pdf

    Spring框架通过Bean Wrapper和Bean Factory两种机制实现对象的封装和管理。Bean Wrapper提供了对Bean属性的操作,而Bean Factory则是创建和管理Bean的工厂,负责Bean的实例化、依赖注入和生命周期管理。更进一步地,...

    spring中文教程

    - **Bean Wrapper**:提供了一种访问和操作Bean属性的方法,支持读写操作,是Spring Bean管理的重要组成部分。 - **Bean Factory**:是Spring容器的基础,负责创建和管理Bean的生命周期,是最原始的容器接口。 - **...

    spring4 中文API

    - **Bean manipulation and the Bean Wrapper**:讲解了Bean操作及Bean Wrapper的使用。 - **Spring Type Conversion**:介绍了Spring中的类型转换机制。 - **Spring Field Formatting**:讲述了Spring如何进行字段...

    Spring 中文教程

    - **Bean封装机制**:Spring框架通过Bean Wrapper、Bean Factory和ApplicationContext等概念来管理Bean的生命周期。 - **Bean Wrapper**:提供了一种包装Bean的方法,使得开发者可以通过统一的接口访问和修改Bean...

    Spring开发指南(中文版)

    文档介绍了Bean Wrapper和Bean Factory两种Bean封装机制,前者提供了对Bean属性操作的封装,后者负责Bean实例的创建和管理,是Spring IoC容器的基础。ApplicationContext则是Bean Factory的高级实现,提供了更丰富的...

    spring 入门教程

    1. **Bean Wrapper**:提供了访问和操作Bean属性的标准接口,使开发者能够以统一的方式访问和修改Bean的属性。 2. **Bean Factory**:是最基本的容器,负责创建和管理Bean的实例,以及Bean的配置和生命周期管理。 3....

    spring+MVC中文教程

    - **Bean Wrapper**:提供了操作Bean的方法,可以用来获取和设置Bean的属性。 - **Bean Factory**:是最基本的容器,负责实例化、定位和配置对象,是所有容器的基类。 - **ApplicationContext**:扩展了Bean Factory...

    Spring技术框架

    - **Bean Wrapper**:Bean Wrapper是一个工具类,它可以包装一个Java Bean,并提供对属性的操作,如读取和设置。 - **Bean Factory**:Bean Factory是Spring容器的基础,负责实例化、定位和配置应用程序中的对象。 -...

    spring+MVC中文教程pdf.pdf

    - **Bean Wrapper**:Spring提供的一个类,用于包装其他对象,提供统一的操作接口。 - **Bean Factory**:Spring容器的基础,负责实例化、定位和配置应用程序中的对象,即Bean。 - **ApplicationContext**:扩展...

Global site tag (gtag.js) - Google Analytics