Spring BeanWrapper.setPropertyValue()

问题描述

在Spring中,处理这个问题的核心是在org.springframework.beans包中。而其中最为核心的部分,则是BeanWrapper。BeanWrapper,顾名思义,就是bean的包装器。所以,它的主要工作,就是对任何一个bean,进行属性(包括内嵌属性)的设置和方法的调用。在BeanWrapper的默认实现类BeanWrapperImpl中,虽然代码较长,但完成的工作却是非常的集中的。  我们看看这个BeanWrapper是如何发挥运作的,假设我们有两个bean:publicclassCompany{ privateStringname; privateEmployeemanagingDirector; publicStringgetName(){  returnthis.name; } publicvoidsetName(Stringname){  this.name=name; } publicEmployeegetManagingDirector(){  returnthis.managingDirector; } publicvoidsetManagingDirector(EmployeemanagingDirector){  this.managingDirector=managingDirector; }}publicclassEmployee{ privatefloatsalary; publicfloatgetSalary(){  returnsalary; } publicvoidsetSalary(floatsalary){  this.salary=salary; }}  然后我们使用BeanWrapper来调用这两个bean:Companyc=newCompany();BeanWrapperbwComp=BeanWrapperImpl(c);//settingthecompanyname...bwComp.setPropertyValue("name","SomeCompanyInc.");//...canalsobedonelikethis:PropertyValuev=newPropertyValue("name","SomeCompanyInc.");bwComp.setPropertyValue(v);//ok,let'screatethedirectorandtieittothecompany://***************这段代码*****************Employeejim=newEmployee();BeanWrapperbwJim=BeanWrapperImpl(jim);bwJim.setPropertyValue("name","JimStravinsky");//<--怎么总觉得这里有错误啊?bwComp.setPropertyValue("managingDirector",jim);//****************************************//retrievingthesalaryofthemanagingDirectorthroughthecompanyFloatsalary=(Float)bwComp.getPropertyValue("managingDirector.salary");==================================================这是我在网上看到的一篇介绍spring的文章,不知道是写错了还是我没有看明白。上面的代码里写完整的话是不是应该这样的啊:Employeejim=newEmployee();BeanWrapperbwJim=BeanWrapperImpl(jim);bwJim.setPropertyValue("salary",100.00);bwComp.setPropertyValue("name","JimStravinsky");//<--那行代码是不是应该这样写才对啊?bwComp.setPropertyValue("managingDirector",jim);

解决方案

解决方案二:
BeanWrapper.setPropertyValue()这样用是什么意思?谢谢!

时间: 2024-09-11 17:05:37

Spring BeanWrapper.setPropertyValue()的相关文章

深入理解Java的Spring框架中的IOC容器_java

Spring IOC的原型spring框架的基础核心和起点毫无疑问就是IOC,IOC作为spring容器提供的核心技术,成功完成了依赖的反转:从主类的对依赖的主动管理反转为了spring容器对依赖的全局控制. 这样做的好处是什么呢? 当然就是所谓的"解耦"了,可以使得程序的各模块之间的关系更为独立,只需要spring控制这些模块之间的依赖关系并在容器启动和初始化的过程中将依据这些依赖关系创建.管理和维护这些模块就好,如果需要改变模块间的依赖关系的话,甚至都不需要改变程序代码,只需要将更

Java的Spring框架中AOP项目的一般配置和部署教程_java

0.关于AOP面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也是Spring框架中的一个重要内容.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP是OOP的延续. 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等. 主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对

Spring-管理Bean 使用BeanWrapper管理Bean

使用BeanWrapper管理Bean 1.修改Bean,增加一个无参数的构造函数 2.配置文件基本不需要改变 3.修改测试代码 Bean如下所示: package com.gc.action; import java.util.Date; public class HelloWorld //implements InitializingBean,DisposableBean { private String msg=null;//该变量用来存储字符串 private Date date=nul

Spring框架系列相关面试问题

1.说说你了解的Spring中的设计模式  第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一.  简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类.  spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定.如下配置,就是在 HelloItxxz 类中创建一个 itxxzBean. 1

Spring4.1新特性——Spring缓存框架增强

本文其实不应该算作Spring4.1新特性,该测试框架目前是独立于Spring Framework发展的.Spring MVC Test HtmlUnit提供了Spring MVC测试框架.HtmlUnit. WebDriver.Geb的集成测试,简化页面自动化测试,利用这些技术可以完成无需启动服务器即可进行页面测试.自动化页面/页面流程测试.Javascript测试.Mock Service提高集成测试速度.本文只会带你使用HtmlUnit和WebDriver进入基本的页面自动化测试一览,不会

Spring Boot ConfigurationProperties validate

使用@Query可以在自定义的查询方法上使用@Query来指定该方法要执行的查询语句,比如:@Query("select o from UserModel o where o.uuid=?1")public List<UserModel> findByUuidOrAge(int uuid);注意:1:方法的参数个数必须和@Query里面需要的参数个数一致2:如果是like,后面的参数需要前面或者后面加"%",比如下面都对:@Query("sel

《Spring 5 官方文档》5. 验证、数据绑定和类型转换(一)

5 验证.数据绑定和类型转换 5.1 介绍 JSR-303/JSR-349 Bean Validation 在设置支持方面,Spring Framework 4.0支持Bean Validation 1.0(JSR-303)和Bean Validation 1.1(JSR-349),也将其改写成了Spring的Validator接口. 正如5.8 Spring验证所述,应用程序可以选择一次性全局启用Bean验证,并使其专门用于所有的验证需求. 正如5.8.3 配置DataBinder所述,应用程

Spring 3整合Quartz 2实现定时任务(转)

http://www.meiriyouke.net/?p=82 最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 首先,当然是添加依赖的jar文件,我的项目是maven管理的,以下的我项目的依赖: <dependencies> <dependency> <groupId>org.springframework</groupId>

《Spring技术内幕》——2.4节IoC容器的依赖注入

2.4 IoC容器的依赖注入 上面对IoC容器的初始化过程进行了详细的分析,这个初始化过程完成的主要工作是在IoC容器中建立BeanDefinition数据映射.在此过程中并没有看到IoC容器对Bean依赖关系进行注入,接下来分析一下IoC容器是怎样对Bean的依赖关系进行注入的. 假设当前IoC容器已经载入了用户定义的Bean信息,开始分析依赖注入的原理.首先,注意到依赖注入的过程是用户第一次向IoC容器索要Bean时触发的,当然也有例外,也就是我们可以在BeanDefinition信息中通过