[转]Java Spring的Ioc控制反转Java反射原理
2016-11-21 22:20
369 查看
转自:http://www.kokojia.com/article/12598.html
学习一个东西的时候,如果想弄明白,最好想想框架内部是如何实现的,如果是我做我会怎么实现。下面我就写一个Ioc DI的程序。Spring就相当于一个Bean工厂,你写好自己的bean,输入配置文件,Spring就可以帮你自动生成bean对象。下面我们创建一个java工程SimulateIoc 我们先写二个Bean。内容都一样,只是类名不一样。定义一个Spring配置文件,我们起名字叫IocConfig.xml。下面我们来看一下TestIoc.Java文件。看一下运行结果:
通过这个文件我们可以看出,我们先创建了一个BeanFactory工厂,然后通过getBean方法获得指定的Bean对象。是不是很神奇,只要通过不同的名字,我们就可以获得我们想要的对象。BeanFactory里面到底做了什么那?这就是整个BeanFactory实现了。里面很多都是处理xml的部分,我们主要看上面的两个标红的地方。
Class bean = Class.forName(cls.getText());
Object obj = bean.newInstance();
Class.forName获得指定类的类类。newInstance()获得指定类的对象。
Method entryPoint = bean.getMethod(attributename, String.class);
entryPoint.invoke(obj,value);
getMethod获得指定方法的方法调用入口。然后调用invoke就会执行方法。
如果想深入了解上面四句。可以看看Class文件的反射机制。或者看我的另外一篇文章。
以上Ioc DI实现过程非常简单,并没有考虑太多干扰因素和功能。所以和Spring实现不一样,但是原理都是一样的。
学习一个东西的时候,如果想弄明白,最好想想框架内部是如何实现的,如果是我做我会怎么实现。下面我就写一个Ioc DI的程序。Spring就相当于一个Bean工厂,你写好自己的bean,输入配置文件,Spring就可以帮你自动生成bean对象。下面我们创建一个java工程SimulateIoc 我们先写二个Bean。内容都一样,只是类名不一样。定义一个Spring配置文件,我们起名字叫IocConfig.xml。下面我们来看一下TestIoc.Java文件。看一下运行结果:
通过这个文件我们可以看出,我们先创建了一个BeanFactory工厂,然后通过getBean方法获得指定的Bean对象。是不是很神奇,只要通过不同的名字,我们就可以获得我们想要的对象。BeanFactory里面到底做了什么那?这就是整个BeanFactory实现了。里面很多都是处理xml的部分,我们主要看上面的两个标红的地方。
Class bean = Class.forName(cls.getText());
Object obj = bean.newInstance();
Class.forName获得指定类的类类。newInstance()获得指定类的对象。
Method entryPoint = bean.getMethod(attributename, String.class);
entryPoint.invoke(obj,value);
getMethod获得指定方法的方法调用入口。然后调用invoke就会执行方法。
如果想深入了解上面四句。可以看看Class文件的反射机制。或者看我的另外一篇文章。
以上Ioc DI实现过程非常简单,并没有考虑太多干扰因素和功能。所以和Spring实现不一样,但是原理都是一样的。
相关文章推荐
- 【Spring】Spring的IOC(控制反转)/DI(依赖注入)原理(一):用到“反射”编程
- JAVA-反射机制(3)-IoC(控制反转)原理
- Spring入门Blog[一、Ioc控制反转注入原理]
- Java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 【Spring】Spring的IOC(控制反转)/DI(依赖注入)原理(二):模拟Spring加载配置文件
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 理解Java Spring核心功能之一:控制反转容器(IOC Container)
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- Spring IoC和DI(反转控制和依赖注入)原理
- Sring控制反转(Inversion of Control,Ioc)也被称为依赖注入(Dependency Injection,DI)原理用反射和代理实现
- spring四种依赖注入方式 ( 依赖注入DI+ 控制反转IOC的原理)
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- Spring 学习 2- IOC原理 控制反转/依赖注入1
- 利用反射简单模拟Spring的控制反转(Ioc)和依赖注入(DI)
- 【JavaWeb-23】spring、IoC控制反转和DI依赖注入入门、基于XML的Bean装配、基于注解的Bean装配
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- spring ioc原理 和 java反射 体会
- spring控制反转(IOC)的原理