Spring中BeanFactory获取Java Bean

开发 后端
本文介绍Spring中BeanFactory获取Java Bean,以及对BeanFactory中其他Bean的引用关系。

1、id JavaBean在BeanFactory中的***标识,代码中通过BeanFactory获取Java Bean实例时需以此作为索引名称。

2、class Java Bean 类名

3、singleton 指定此Java Bean是否采用单例(Singleton)模式,如果设为“true”,则在BeanFactory作用范围内,只维护此Java Bean的一个实例,代码通过BeanFactory获得此Java Bean实例的引用。反之,如果设为“false”,则通过BeanFactory获取Java Bean实例时,BeanFactory每次都将创建一个新的实例返回。

4、init-method 初始化方法,此方法将在BeanFactory创建JavaBean实例之后,在向应用层返回引用之前执行。一般用于一些资源的初始化工作。

5、destroy-method 销毁方法。此方法将在BeanFactory销毁的时候执行,一般用于资源释放。

6、depends-on Bean依赖关系。一般情况下无需设定。Spring会根据情况组织各个依赖关系的构建工作(这里示例中的depends-on属性非必须)。只有某些特殊情况下,如JavaBean中的某些静态变量需要进行初始化(这是一种BadSmell,应该在设计上应该避免)。通过depends-on指定其依赖关系可保证在此Bean加载之前,首先对depends-on所指定的资源进行加载。

7、 通过节点可指定属性值。BeanFactory将自动根据Java Bean对应的属性类型加以匹配。下面的”desc”属性提供了一个null值的设定示例。注意代表一个空字符串,如果需要将属性值设定为null,必须使用节点。

8、指定了属性对BeanFactory中其他Bean的引用关系。示例中,TheAction的dataSource属性引用了id为dataSource 的Bean。BeanFactory将在运行期创建dataSource bean实例,并将其引用传入TheAction Bean的dataSource属性。

下面的代码演示了如何通过BeanFactory获取Java Bean实例: InputStream is = new FileInputStream("bean.xml"); XmlBeanFactory factory = new XmlBeanFactory(is); Action action = (Action) factory.getBean("TheAction"); 此时我们获得的Action实例,由BeanFactory进行加载,并根据配置文件进行了初始化和属性设定。

【编辑推荐】

  1. Spring3.0将全面支持REST
  2. 专家Isvy谈Spring 3.0
  3. JSF与Spring的集成
  4. 详细介绍Spring事务管理
  5. Spring框架的事务管理应用分析
责任编辑:佚名 来源: Java中文社区
相关推荐

2009-06-17 17:04:37

BeanFactorySpring

2023-07-06 14:24:23

Spring接口自定义

2023-01-13 07:41:20

BeanSpring容器

2022-06-23 10:47:57

Spring容器工具

2024-02-23 10:33:34

SpringBean容器

2023-10-27 07:39:44

IOC容器Spring

2011-03-18 09:27:00

Spring

2024-05-29 08:19:03

2011-04-19 09:27:25

Spring

2022-05-27 08:25:55

容器Spring

2011-04-02 15:25:41

Spring

2022-12-27 08:12:27

IOC容器Bean

2021-04-23 14:14:46

设计模式对象

2009-01-30 09:12:11

SpringApplicationJavaWeb

2023-09-28 08:15:05

SpringBean加载

2021-03-08 08:40:25

Spring Bean 创建单例对象

2022-03-14 08:54:42

SpringBean生命周期

2024-11-14 14:53:04

2023-11-03 08:19:18

SpringBean容器

2021-05-06 07:58:57

Spring BeanIOCAOP
点赞
收藏

51CTO技术栈公众号