一.Spring框架的概念
Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。
1.IOC(Inversion of control)控制反转
概念:控制权由对象转向容器,由容器根据配置文件去创建实例和创建实例的各个依赖关系。
核心:bean工厂,bean工厂创建的各个实例叫做bean。
2.AOP(Aspect-Oriented Programming)面向方向编程:
就是通过配置文件,实现模块与模块的分离,对象与对象的分离。
3.代理的两种方式:
(1)静态代理:
针对每个具体类分别编写代理类;
针对一个接口编写一个代理类;
(2)动态代理:
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
(3)AOP的主要原理:动态代理
3.Spring工作原理
内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 ,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置 文件来动态的创建对象,和调用对象里的方法的 。
Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过 配置类达到的。
Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明 管理的(Spring根据这些配置 内部通过反射去动态的组装对象)