`
esffor
  • 浏览: 1367679 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Bean包装类案例之修改,获取bean属性

阅读更多

 通过Bean的封装类BeanWrapper和BeanWrapperImpl,可以很方便的对javabean就行修改,读取

javabean:

 

package Bean.BeanWrapperOne;

public class Company ...{
   
private String name;
   
private Employee director;
public Employee getDirector() ...{
    
return director;
}

public void setDirector(Employee director) ...{
    
this.director = director;
}

public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}

   
}



package Bean.BeanWrapperOne;

public class Employee ...{
   
private String name;
   
private float salary;
public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}

public float getSalary() ...{
    
return salary;
}

public void setSalary(float salary) ...{
    
this.salary = salary;
}

}


测试代码:

 

package Bean.BeanWrapperOne;

import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.beans.PropertyValue;

public class Test ...{
   
public static void main(String args[])...{
       Company c
=new Company();
       
//以某个bean为参数,创建BeanWrapper实例
       BeanWrapper bwComp=new BeanWrapperImpl(c);
       
//通过BeanWrapper设置公司名
       bwComp.setPropertyValue("name","IBM");
       System.out.println(
"通过BeanWrapper设置的公司名为:"+c.getName());
       System.out.println(
"通过BeanWrapper读取公司名为:"+bwComp.getPropertyValue("name"));
       
//另一个设置属性的方式
       PropertyValue v=new PropertyValue("name","HP");
       bwComp.setPropertyValue(v);
       System.out.println(
"通过BeanWrapper设置的公司名为:"+c.getName());
       System.out.println(
"通过BeanWrapper读取公司名为:"+bwComp.getPropertyValue("name"));
       
       
//通过BeanWrapper设定雇员
       Employee em=new Employee();
       BeanWrapper bwEm
=new BeanWrapperImpl(em);
       bwEm.setPropertyValue(
"name","scott");
       bwComp.setPropertyValue(
"director",em);
       
       em.setSalary(
1000);
       
       
//通过公司获得雇员工资,直接读取属性
       Float salary=(Float)bwComp.getPropertyValue("director.salary");
       System.out.println(
"雇员工资为:"+salary.toString());
      
   }

}


|运行结果:

通过BeanWrapper设置的公司名为:IBM
通过BeanWrapper读取公司名为:IBM
通过BeanWrapper设置的公司名为:HP
通过BeanWrapper读取公司名为:HP
雇员工资为:1000.0



分享到:
评论

相关推荐

    SpringBoot 获取spring bean方式.rar

    在Spring Boot应用中,管理Bean是核心特性之一。Spring框架为我们提供了多种获取Bean的方法,这些方法可以帮助开发者在不同场景下灵活地使用Bean。本篇将详细介绍Spring Boot中获取Bean的几种常见方式。 首先,让...

    Spring bean对象实例化实现过程图解

    这个接口的主要作用是获取 BeanDefinitionRegistry 对象,然后通过这个对象获取到所有注册的 BeanDefinition 对象,从而实现对 BeanDefinition 对象的修改和新增操作。 BeanPostProcessor 的注册 在 Bean 对象实例...

    spring各种属性的注入

    基本类型的属性注入是Spring中最常见的用法之一,它支持所有的Java基本数据类型如`int`、`long`、`double`、`boolean`等,也包括它们对应的包装类如`Integer`、`Long`、`Double`、`Boolean`等。例如: ```xml <bean...

    Spring 源码分析(Bean的初始化)

    3. **AOP代理**:如果Bean配置了AOP代理,Spring会创建一个代理对象来包装原始的Bean实例,以便在方法调用时执行拦截器逻辑。 4. **单例管理**:对于单例模式的Bean,Spring会缓存其实例,确保后续请求得到的是同一...

    Spring整合Struts

    另一种整合方式是通过继承Spring的ActionSupport类,这使得开发者能够显式地使用getWebApplicationContext()方法获取Spring管理的bean。这种方式更适用于那些需要深度集成Spring特性的场景,比如AOP或更复杂的依赖...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    在这个案例中,Spring将用于管理Bean的生命周期和装配,以及提供事务管理。 Mybatis是一个轻量级的持久层框架,它简化了SQL映射和对象关系映射(ORM)的过程。在OSGI环境中,Mybatis可以作为单独的bundle存在,通过...

    关于mybatis spring与dubbo是怎么通过一个接口 你就能调用到一个bean方法的讲解

    对于接口,Spring可以生成代理对象,使得调用接口方法时,实际上是在执行由代理对象包装的具体bean的方法。这主要有两种方式:JDK动态代理和CGLIB代理。 1. JDK动态代理:如果目标对象实现了至少一个接口,Spring会...

    Spring-Reference_zh_CN(Spring中文参考手册)

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 ...

    Spring中文帮助文档

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 ...

    Spring整合hibernate(2)之基于HibernateTemplate的整合

    HibernateTemplate是Spring为Hibernate提供的一个便捷工具类,它包装了SessionFactory和Session的基本操作,如查询、保存、更新和删除等。在项目中,我们首先需要添加Spring和Hibernate的相关jar包,包括spring-tx、...

    Spring API

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 ...

    Spring 2.0 开发参考手册

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...

    Spring框架的设计理念和设计模式分析

    - **关键类:** BeanDefinition接口定义了Bean的元数据,AbstractBeanDefinition则是BeanDefinition的具体实现,用于描述Bean的属性和配置信息。 #### 三、核心组件的协同工作 Spring框架的核心组件之间紧密协作,...

    第四章 Spring4 注入参数

    Spring4允许我们将基本数据类型(如int、String、boolean等)以及它们的包装类作为属性注入到Bean中。例如,我们可以在配置文件中使用`<property>`标签或者在Java配置类中使用`@Value`注解来指定值: ```xml <bean ...

    Spring实现自动代理Demo

    自动代理是Spring AOP的核心功能之一,它创建了一个代理对象来包装原始的bean。当调用代理对象的方法时,Spring会先执行一些预定义的行为(如切面),然后转发调用到实际的目标对象。这使得我们可以对多个类进行统一...

    1000行代码读懂spring核心.pdf

    Spring框架是Java语言中最流行和广泛应用的开源框架之一,它基于Java语言编写,并且提供了一整套企业级应用开发的解决方案,是当今Java开发者不可不知的技术栈之一。本文档的标题表明了其意图——通过大约1000行代码...

    soft-spring demo

    1. **src/main/java**:包含项目源代码,包括定义Job类和配置Spring Bean的类。 2. **src/main/resources**:存储配置文件,如Spring的applicationContext.xml或application.properties,以及Quartz的配置如quartz....

    spring chm文档

    5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...

Global site tag (gtag.js) - Google Analytics