使用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=null;//该变量用来存储日期 public HelloWorld(){ } //设定变量msg的set方法 public void setMsg(String msg) { this.msg=msg; } //获取变量msg的get方法 public String getMsg() { return this.msg; } public Date getDate() { return this.date; } public void setDate(Date date) { this.date = date; } }
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!--定义一个Bean--> <bean id="HelloWorld" class="com.gc.action.HelloWorld" init-method="afterPropertiesSet" destroy-method="cleanup"> <!--将其变量msg通过依赖注入--> </bean> </beans>
测试程序:
package com.gc.test; import java.util.Date; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.gc.action.HelloWorld; public class TestHelloWorld { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { //通过Class.forName()方法获取类HelloWorld的一个实例 Object obj=Class.forName("com.gc.action.HelloWorld").newInstance(); //通过BeanWrapper来设定类HelloWorld的属性 BeanWrapper bw=new BeanWrapperImpl(obj); //根据类变量设定变量的值 bw.setPropertyValue("msg","HelloWorld"); bw.setPropertyValue("date",new Date()); System.out.println(bw.getPropertyValue("date")+" "+bw.getPropertyValue("msg")+"------"); } }
输出:
Tue Mar 20 19:29:35 CST 2012 HelloWorld------
相关推荐
- **使用BeanWrapper管理Bean:** 提供了一种统一的方式来操作Bean。 - **使用BeanFactory和ApplicationContext管理Bean:** BeanFactory是创建Bean的工厂,ApplicationContext提供了更多的高级功能。 以上是对...
Gwt-Bean 是一个针对 Google Web Toolkit (GWT) 平台设计的库,它借鉴了 Spring 框架中的 BeanWrapper 概念,旨在帮助开发者更方便地处理 Java 对象与 JavaScriptObject 之间的交互。在 GWT 开发中,由于浏览器端...
在Spring框架中,依赖注入(Dependency Injection,DI)是核心特性之一,它允许开发者通过声明式的方式管理对象的生命周期...通过阅读这篇博客,读者应该能掌握如何在实际项目中灵活地利用setter注入来管理bean的依赖。
- 避免在非受管理的环境中(如独立的Java对象)使用`@Autowired`,因为它依赖于Spring容器。 ### 7. 源码解析 `@Autowired`注解的实现涉及到Spring的核心组件——`BeanFactory`和`ApplicationContext`。当遇到`@...
BeanFactory是工厂模式的实现,提供了配置Bean和管理Bean生命周期的基本功能;而ApplicationContext则在此基础上增加了国际化支持、资源访问、事件发布等高级特性。 2. **面向切面编程(AOP)**: - AOP是一种编程...
- **BeanFactory**:是Spring容器的核心接口之一,负责创建和管理Bean实例。 - **特点**:它是工厂模式的实现,提供了创建、配置和获取Bean的基本功能。 - **应用场景**:通常在不需要高级特性的场景下使用,如...
- **BeanWrapper 和 bean 处理:** BeanWrapper 是一个用于读写 Bean 属性的工具类,可以方便地进行属性的设置和获取。 - **PropertyEditor:** PropertyEditor 用于自定义 Bean 属性的类型转换规则,可以用于处理...
它提供了获取bean、配置bean以及管理bean生命周期的方法。 2. **ApplicationContext**:BeanFactory的扩展,提供了更多的企业级功能,如消息资源、国际化支持、事件传播等。它是Spring应用的主要入口点,开发者通常...
5. **依赖注入**:Spring通过`BeanWrapper`或`PropertyPlaceholderConfigurer`对bean的属性进行设置,完成依赖注入。 6. **初始化Bean**:最后,Spring会调用bean的初始化方法(如`init-method`指定的方法),完成...
`BeanWrapper`组件提供了对bean属性的访问和操作。 在执行过程中,Spring IoC容器首先通过`BeanDefinitionReader`加载和解析bean定义,然后`BeanFactory`根据`BeanDefinition`创建bean实例。如果bean配置了自动装配...
核心容器由Core、Beans、Context模块组成,负责创建和管理bean,以及提供上下文环境。数据访问/集成模块支持JDBC、ORM(Object-Relational Mapping)和OXM(Object-XML Mapping)。Web模块则包含Spring MVC和...
- **bean操作和BeanWrapper**:提供了对Bean的操作支持。 - **Spring类型转换**:Spring支持多种类型转换策略。 - **Spring字段格式化**:如何格式化日期等类型字段。 - **配置全局Date和Time格式**:统一配置...
通过IOC,Spring管理Bean的生命周期和依赖关系,避免了Bean之间直接调用,转而采用依赖注入的方式。这样,Spring可以在运行时动态地配置Bean的属性和协作行为,增强了代码的可测试性和可维护性。 BeanWrapper是...
4.11.1 使用Java类提供Bean定义信息 4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition ...
4.11.1 使用Java类提供Bean定义信息 4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition ...
1. **BeanFactory**:BeanFactory是Spring框架的核心组件,它是bean的管理和配置中心,负责创建、管理和装配bean,维护bean之间的依赖关系。BeanFactory提供了控制反转(IoC)的能力,使得程序解耦,更易于测试和...