Spring核心学习(1)实现基本的容器-包括注入和获取功能
2015-05-07 21:06
495 查看
前导:开始学习Spring核心思想,通过一个山寨精简版Spring代码结合学习。
内容:1. BeanDefinition-保存Bean及配置信息 2. BeanFactory-对Bean进行管理。在使用Spring的过程中我们都是通过name来获得相应的bean的,在这里我们用ConcurrentHashMap来存储每个name对应的BeanDefinition,并通过BeanDefinition来获得相应的Object,而这个Object是提前注入到这个BeanDefinition里面的,下一部分将有所改变。
BeanFactory:
HelloWorldService:
BeanFactoryTest:
内容:1. BeanDefinition-保存Bean及配置信息 2. BeanFactory-对Bean进行管理。在使用Spring的过程中我们都是通过name来获得相应的bean的,在这里我们用ConcurrentHashMap来存储每个name对应的BeanDefinition,并通过BeanDefinition来获得相应的Object,而这个Object是提前注入到这个BeanDefinition里面的,下一部分将有所改变。
BeanDefinition:
public class BeanDefinition { private Object bean; public BeanDefinition(Object object) { this.bean = object; } public Object getBean() { return this.bean; } }
BeanFactory:
public class BeanFactory { private Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(); public Object getBean(String name) { return beanDefinitionMap.get(name).getBean(); } public void registerBeanDefinition(String name, BeanDefinition beanDefinition) { beanDefinitionMap.put(name, beanDefinition); } }
HelloWorldService:
public class HelloWorldService { public void helloWorld() { System.out.println("Hello World"); } }
BeanFactoryTest:
public class BeanFactoryTest { @Test public void test() { // 1. 初始化BeanFactory BeanFactory beanFactory = new BeanFactory(); // 2. 注入bean BeanDefinition beanDefinition = new BeanDefinition(new HelloWorldService()); beanFactory.registerBeanDefinition("helloWorldService", beanDefinition); // 3. 获取bean HelloWorldService helloWorldService = (HelloWorldService) beanFactory.getBean("helloWorldService"); helloWorldService.helloWorld(); } }
相关文章推荐
- 菜鸟学习OGRE和天龙八部之十六: 网游视角跑图功能基本实现,包括人物,射线查询,鼠标decal等等
- 菜鸟学习OGRE和天龙八部之十六: 网游视角跑图功能基本实现,包括人物,射线查询,鼠标decal等等
- Spring通过容器获取配置对象及事件注入(学习笔记二)
- spring源码初步学习-容器(BeanFactory)基本实现
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
- 创建ApplicationContext与BeanFactory时的区别-Spring源码学习之容器的基本实现
- 创建ApplicationContext与BeanFactory时的区别-Spring源码学习之容器的基本实现
- spring容器的基本实现之核心类介绍
- Spring.NET依赖注入框架学习--实例化容器常用方法
- 分析Spring启动过程,完成实现核心的两大功能(IOC , AOP);
- [转载]aop代理方式引起的spring注入bean(实现类)与获取bean(实现类)出错
- (一)Spring核心-IoC容器的依赖注入
- 关于SpringBoot获取IOC容器中注入的Bean(推荐)
- java 从spring容器中获取注入的bean对象
- 【Spring源码--IOC容器的实现】(六)Bean的依赖注入
- Spring学习总结(15)——Spring AOP 拦截器的基本实现
- Spring学习总结(15)——Spring AOP 拦截器的基本实现
- 配置springmvc在其他类中(spring容器外)获取注入bean
- spring容器注入一个接口的两个实现类
- SpringBoot中实现依赖注入功能