1.一个简单例子说明beanfactory实质
package com.qiqi.base;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Map;
import java.util.Properties;
public class BeanFactory {
private static Map<String, Object> objectPool = new Hashtable<String, Object>();
static {
Properties config = new Properties();
InputStream in = BeanFactory.class
.getResourceAsStream("beans-config.properties");
if (in == null) {
throw new ExceptionInInitializerError(
"no file:beans-config found error!");
}
try {
config.load(in);
in.close();
Enumeration ids = config.propertyNames();
while (ids.hasMoreElements()) {
String id = (String) ids.nextElement();
String className = config.getProperty(id);
Object instance = Class.forName(className).newInstance();
objectPool.put(id, instance);
}
} catch (Exception e) {
e.printStackTrace();
throw new ExceptionInInitializerError("failed to init bean pools!");
}
}
public static Object getBean(String id) {
return objectPool.get(id);
}
}
2.关键在Object instance = Class.forName(className).newInstance();
根据类名实例化,即java的反射机制
分享到:
相关推荐
在Spring中,bean是被容器初始化、装配和管理的对象,它们与其他应用对象并无本质区别,只是生命周期和依赖关系由容器控制。bean定义包括类信息、属性值、依赖的其他bean等,这些信息通过配置元数据传递给容器。...
IoC(Inversion of Control)即控制反转,是Spring框架的核心特性之一,其本质是通过依赖注入(Dependency Injection, DI)的方式来实现对对象之间依赖关系的管理。在Spring中,BeanFactory是最基础的IoC容器接口,...
自定义Spring的控制反转和依赖注入,实质上是实现Spring容器的解析、管理bean定义以及处理依赖关系的能力。理解这一过程有助于我们更好地利用Spring框架,同时也能在需要时进行定制化开发。通过自定义配置,我们可以...
本文档详细介绍了 Spring 5.0.2 中的核心技术,涵盖了 IoC 容器、Bean 的概述、依赖关系、范围、定制 Bean 的本质、Bean 定义继承、容器扩展点、基于注解的容器配置、类路径扫描和管理组件、使用 JSR 330 标准注释、...
##### 3.3 自定义 Bean 的本质特征 - **生命周期接口**:Bean 可以实现特定的生命周期接口来控制自己的生命周期。 - **InitializingBean / init-method**:Bean 初始化后的回调方法。 - **DisposableBean / ...
- **容器**:Spring框架本质上是一个容器,它负责管理和控制应用程序中对象的生命周期。 - **框架**:Spring提供了一种简单的方法来组合简单的组件以形成复杂的应用程序。这可以通过XML配置文件或者Java注解来完成。...
首先,我们来探讨“设值注入”的本质。设值注入是指通过Spring容器在对象已经创建后,通过setter方法设置对象的属性。这种注入方式使得对象的依赖关系可以在运行时动态配置,提高了代码的灵活性和可测试性。Spring...
Beans组件则主要关注Bean的定义、创建和解析,Bean在Spring中扮演着至关重要的角色,因为Spring本质上是基于Bean的编程模型,即Bean Oriented Programming(BOP)。Bean是对象的封装,它们通过配置文件或注解来定义...
源文件是理解任何软件系统本质的关键,对于Spring框架来说也不例外。在深入探究Spring的源代码之前,我们需要了解一些基本概念。 Spring的核心特性包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect...
这样,业务逻辑代码可以更专注于其实质功能,而不需要关心这些横切关注点。 Spring框架的整体结构由多个模块组成,这些模块可以单独使用,也可以组合使用。例如,核心容器包括BeanFactory和ApplicationContext,...
- **BeanWrapper**:在 Spring 中,BeanWrapper 类本质上是装饰器模式的一个应用。它允许开发者在不修改原有对象的基础上动态地添加新的行为或责任,这在处理复杂的对象层次结构时特别有用。例如,在 AOP 场景下,...
文档还提到了Spring框架的开源本质,鼓励读者参与和贡献,也体现了开源社区合作和共同进步的理念。对于技术文档和开源项目,开放文档(OpenDoc)的方式可以促进知识的传播和协作,同时也是一种鼓励读者反馈和持续...
- **控制反转 (Inversion of Control, IOC)**:IOC是Spring框架的核心概念之一,其实质是通过配置文件而非硬编码的方式来管理对象及其依赖关系。这种方式使得对象之间的依赖关系变得松散,提高了代码的可复用性和可...
SSM框架集成,其中包括SpringMVC+Spring+Mybatis。 复习了下之前框架方面的知识,这次独立自己查看文档,搜百度将...XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。
**BeanDefinition** 是Spring框架中一个非常重要的概念,它本质上是用来描述一个Bean(即Java对象)的配置元数据。这些元数据包含了Bean的属性值、依赖关系、生命周期回调方法等信息。 - **定义了什么**:Bean...
Bean在Spring中的地位至关重要,因为Spring的本质是面向Bean的编程(BOP)。Bean是Spring中的主角,它们如同面向对象编程中的对象,是业务逻辑的载体。Spring通过Bean实现DI,使得开发者无需在代码中显式创建和管理...
- **反向控制(IoC)**:这是Spring框架的一个关键特性,其本质在于将对象的创建和依赖关系的管理从应用程序代码中移除,转而由Spring容器来完成。在传统模式下,对象会主动寻找和管理自己的依赖对象,而在Spring...
Spring IoC容器的本质就是为了管理Bean。生命周期主要是为了了解Spring IoC容器初始化和销毁Bean的过程,通过对它的学习就可以知道如何在初始和销毁的时候加入自定义的方法,以满足特定的需求。 生命周期的步骤包括...
- JSP编译成Servlet执行,因此JSP本质上是一种简化版的Servlet。 - **联系**: - 在MVC模式中,通常Servlet作为控制器(Controller),JSP作为视图(View)。 - 二者可通过request对象传递数据。 #### 3. Java代码...
- **容器**:Spring框架本质上是一个容器,负责管理对象的创建和生命周期。 - **BeanFactory接口**:早期版本中用于管理bean的核心接口,新版中更推荐使用`ApplicationContext`。 - **ApplicationContext接口**:...