Spring从核心而言就是一个DI(依赖注入)容器,其核心的核心就是Bean的封装机制:BeanWrapper(Bean的封装包)和Bean Factory(Bean工厂)
1.
Bean Wrapper
Bean Wrapper及Bean Factory的底层是通过java.lang.reflect机制来实现的
Class cla = Class.forName("com.tianye.Student");
Object obj = (Object)cla.newInstance();
Method method = cla.getMethod("setName",new Class[]{String.class});
method.invoke(obj,new Object[]{"TianYe"});
利用Bean Wrapper来操作一个Bean实例:
public static void TestBeanWrapper(){
try{
Object obj = Class.forName("com.tianye.Student").newInstance();
BeanWrapper bw = new BeanWrapperImpl(obj);
bw.setPropertyValue("name","TianYe");
System.out.println(bw.getPropertyValue("name"));
}catch(Exception e){
e.printStackTrace();
}
}
BeanWrapper 需要逐个的对属性设置值,操作起来比较繁琐,而且只是针对单个Bean进行的操作,BeanWrapper不是很常用,在此基础上出现了BeanFactory
2.
BeanFactory
BeanFactory对Bean的操作是通过配置文件来完成的,BeanFactory在配置文件中可以配置的项目:
(1) Bean属性值及依赖关系
(2) Bean的创建模式(是否为singleton)
(3) Bean的初始化及销毁方法
(4) Bean的依赖关系
<bean>标签中的属性及用法
id: 是Bean在BeanFactory中的一个唯一的标识,在代码中以此作为索引名称来获取Bean实例的
class:类名(类的路径---包名.类名)
singleton: singleton="false"的时候表示该类不是单例Bean是多利Bean,多线程访问的时候,会获取到多个不同的Bean实例 singleton="true"的时候表示该类是单例Bean,多线程访问的时候只可以获取到一个Bean实例
lazy-init:为"true"的时候表示在spring容器启动的时候不用加载该Bean,只要第一次获取Bean实例的时候才加载该Bean, 为"false"的时候则是在spring容器启动的时候就被加载,利用该属性可以优化spring容器的启动速度
该属性只针对于单例Bean起作用,当singleton="false"的时候系统抛出异常
init-method:初始化方法,在BeanFactory创建Bean实例后执行该方法
destroy-method:销毁方法,在Bean销毁的时候调用,一般用于资源释放
<property>标签中的属性及用法
<value>节点:用于指定一个属性的值,BeanFactory会自动进行类型匹配
<ref>节点:指定了属性对BeanFactory中其他Bean的引用关系(即一个Bean中的属性或方法中的参数是另一个Bean的对象或是Interface对象),由接口的实现类来完成注入
<null>节点:当Bean中的属性值要设为 null 的时候,就需要使用到<null/>子节点
利用BeanFactory来获取Bean实例:
InputStream is = new FilleInputStream("bean.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
IHello ihello = (IHello)xbf.getBean("hello");
BeanFactory实现了对多个Bean的管理
分享到:
相关推荐
在普元EOS平台中,SpringBean同样扮演着重要角色,用于封装业务逻辑、数据访问等功能。通过合理地设计和配置SpringBean,可以极大地提高开发效率和系统的可维护性。 #### 开发前准备 - **首选项代码模板配置**:在...
在Spring框架中,bean的实例化是其核心功能之一,它允许我们管理应用程序中的对象生命周期。本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念...
`<beans>`元素是Spring配置文件的根元素,用于封装一个或多个`<bean>`元素。这使得开发人员能够在一个文件中定义和配置多个Bean,从而简化了应用程序的配置过程。 #### `<bean>` 元素 `<bean>`元素用于告诉Spring...
Spring的Bean封装机制是其核心功能之一,主要包括: - **Bean Wrapper**:提供了一种访问和操作Bean属性的方法,支持读写操作,是Spring Bean管理的重要组成部分。 - **Bean Factory**:是Spring容器的基础,负责...
通过对Spring框架核心概念的详细解读,如依赖注入的不同实现类型、Bean封装机制等,本书为开发者提供了坚实的基础,助力他们在实际项目中灵活运用Spring框架,构建高效、可维护的企业级应用程序。无论是新手还是有...
- **Spring Bean 封装机制**: - **BeanWrapper**:提供了一种统一的方式处理不同类型的 Bean 属性。 - **BeanFactory**:负责实例化、定位和配置应用程序中的对象。 - **ApplicationContext**:扩展了 `...
### Spring 开发指南Xiaxin (夏昕)...此外,本书还介绍了依赖注入的不同实现方式及其优缺点,以及Spring框架提供的Bean封装机制等内容。对于希望深入理解和应用Spring框架的开发者来说,本书是一份不可多得的宝贵资料。
Spring框架通过Bean封装机制管理应用程序中的对象,这些对象被称为“Beans”。Bean的生命周期、配置和依赖关系都在Spring容器的控制之下,使得开发者可以专注于业务逻辑而不是基础设施的细节。 1. **Bean Wrapper**...
#### 四、Spring Bean封装机制 - **Bean Wrapper**:提供了操作Bean的方法,可以用来获取和设置Bean的属性。 - **Bean Factory**:是最基本的容器,负责实例化、定位和配置对象,是所有容器的基类。 - **...
#### Spring Bean封装机制 Spring框架提供了一种灵活的方式来管理对象的生命周期,这主要通过Bean Factory和ApplicationContext来实现。 - **Bean Wrapper**:Bean Wrapper提供了一种封装Bean的方法,它支持读取和...
#### Spring Bean封装机制 Spring框架通过Bean Factory或ApplicationContext来管理对象的生命周期。Bean Factory是最基本的容器,负责实例化、定位和配置应用程序中的对象,即“Beans”。ApplicationContext则提供...
#### 四、Spring Bean封装机制 - **BeanWrapper**:是Spring提供的用于封装JavaBean的一个接口,它提供了对Bean属性的读写操作。 - **作用**:BeanWrapper提供了统一的接口来访问和修改Bean的属性,简化了对Bean的...
#### Spring Bean封装机制 Spring框架通过Bean Wrapper和Bean Factory等机制来管理和封装Bean。 - **Bean Wrapper**:提供了对Bean属性的访问和操作。它可以用来获取或设置Bean的属性值。 - **Bean Factory**:是...
#### Spring Bean封装机制 Spring提供了多种机制来封装和管理Bean,包括: - **BeanWrapper**:提供了访问和操作Bean属性的统一接口,支持类型转换和属性编辑。 - **BeanFactory**:Spring的最基本工厂接口,负责...
- SpringBean封装机制包括BeanWrapper、BeanFactory和ApplicationContext等概念,它们是Spring框架中管理Bean生命周期和依赖的核心组件。 - Spring高级特性章节讲解了Spring框架的高级用法,例如Web应用与MVC、...