Spring 工作原理

来源:互联网 发布:头北脚南睡觉好吗知乎 编辑:程序博客网 时间:2024/05/19 12:26
一、 IoC(Inversion of control): 控制反转 
1、IoC: 
概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系 
核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean 
二、AOP(Aspect-Oriented Programming): 面向方面编程 
1、 代理的两种方式: 
静态代理: 
 针对每个具体类分别编写代理类; 
 针对一个接口编写一个代理类; 
动态代理: 
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类 
2、 AOP的主要原理:动态代理 



Spring工作原理 
        Spring 已经用过一段时间了,感觉Spring是个很不错的框架。内部最核心的就是IOC了, 
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml  Spring的配置 
文件来动态的创建对象,和调用对象里的方法的 。 
     Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 
在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过 
配置类达到的。 
   Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明 
管理的(Spring根据这些配置 内部通过反射去动态的组装对象) 

   要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。


举例说明:

AOP(面向切面编程),可千万不要认为只有Spring里面才有AOP的概念,

因为你可以在很多地方发现AOP的身影。如果你知道Servlet里面的过滤器是怎么一回事,

那么你就可以理解面向切面编程了,理解起来不是很难,怕还是理解不了,就再举一个例子,

比如你去火车站,门口会有一个物品检测,人们只要把东西放在机器里面过一下就可以检测了,

检测机器可以理解为只有一台,物品是很多,只要物品经过了检查机器就会自动的去检查,

这就是面向切面!可以理解检查机器是一个检查物品的公共的类,只要物品经过就会检查,

物品里面不需要这个功能,这个是在经过的时候自动加上去的!