Spring从入门到精通》学习之---Bean的管理

本文介绍了Spring框架中三种管理Bean的方法:BeanWrapper、BeanFactory和ApplicationContext。详细解释了每种方式的特点及其应用场景,并通过示例代码进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring中对bean的管理主要有3种方式

 

分别是 BeanWrapper  BeanFactory 和 ApplicationContext。

 

1.使用BeanWrapper来管理bean。

 

在org.springframework.beans包中,有两个非常重要的类:BeanWrapper接口及它的实现BeanWrapperImpl。BeanWrapper封装了

一个bean的行为,提供了设置和获得属性值的功能。通过BeanWrapper可以可以获得Bean的属性描述,查询只读或者可写属性。

 

实例:

1.HelloWorld.java

/**
 *
 */
package jp.co.xiehl.learn.ch2.action;

import java.util.Date;

 public class HelloWorld {

 private String msg;

 private Date date;

 public String getMsg() {
  return msg;
 }

 public void setMsg(String msg) {
  this.msg = msg;
 }

 public Date getDate() {
  return date;
 }

 public void setDate(Date date) {
  this.date = date;
 }

}

配置文件不许改动,因为该方式不需要配置文件。

 

测试类

    // 通过Class.forName方法获取HelloWorld类的一个实例

    Object obj = Class.forName("jp.co.xiehl.learn.ch2.action.HelloWorld").newInstance();

    // 通过BeanWrapper 来设定HelloWorld的属性
    BeanWrapper bw = new BeanWrapperImpl(obj);

    // 根据类变量设置变量的值
    bw.setPropertyValue("msg", "Hello BeanWrapper");
    System.out.println("BeanWrapper:msg="+bw.getPropertyValue("msg"));

 

2.使用BeanFactory来管理bean

BeanFactory实际上是实例化,配置和管理众多Bean的容器。这些bean通常会彼此合作,因而它们之间会产生依赖。

一个BeanFactory可以接口org.springframework.beans.factory.BeanFactory表示,这个接口有多个实现。最常用的简单的BeanFactory实现是org.springframework.beans.factory.xml.XmlBeanFactory.

 

实例:通过beanfactory来实现输出HelloWorld。

配置文件

  <property name="msg">
   <value>HelloWorld</value>
  </property>

 

修改测试程序:

// 通过ClassPathResource 获取配置文档

   ClassPathResource res = new ClassPathResource("config.xml");

// 通过XmlBeanFactory解析配置文档
   BeanFactory beanfactory = new XmlBeanFactory(res);
   HelloWorld hello = (HelloWorld)beanfactory.getBean("helloworld");

// 输出bean在配置文档中设定的内容
   System.out.println("HelloWorld:msg="+hello.getMsg());

 

 

3.使用ApplicationContext来管理bean

ApplicationContext建立在BeanFactory之上,并增加了其他功能,例如对于国际化的支持,获取资源,时间传递等。一般来所,ApplicationContext是BeanFactory的超集,任何BeanFactory功能同样也适用于ApplicationContext。

代码

   ApplicationContext ac = new FileSystemXmlApplicationContext("/WEB-INF/config.xml");
   HelloWorld hello = (HelloWorld)ac.getBean("helloworld");
   System.out.println("HelloWorld:msg="+hello.getMsg());

 

 

3种管理Bean的方式的比较

BeanWrapper不使用xml配置文件。而且只能对单个的bean进行设定。因此在实际编程中不常用。

常用的是BeanFactory和ApplicationContext。因为ApplicationContext是BeanFactory的超集。

ApplicationContext应用的则更多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值