- Spring:是一个完整的mvc框架提供了从表现层,业务层,持久层的一套完整的解决方案,它的核心是IOC和AOP是我们的程序耦合降低代码简洁.
- IOC控制反转,原来我们使用一个对象需要去自己创建一个该对象的实例,IOC的作用就是我们把对象实例的创建交给spring,spring会将对象实例创建出来存放到spring IOC容器中,当我们要用的时候直接去取实例就行不用我们在自己创建对象实例.创建实例对象的方法,无参构造,静态工厂,实例工厂.spring注解开发时IOC对象实例化使用的是无参构造.
- DI 属性注入,为实例对象注入属性,有构造器注入,setter方法注入,spring注解开发时的DI属性注入使用的是构造器注入.
- AOP 面向切面编程,就是横向的将程序进行切割,并将程序中统一的功能单独拿出来通过动态代理的方式提供给这些程序,可以使各个业务逻辑之间的耦合降低,提高代码的复用性.
- AOP的相关术语:target:指的是需要被增强的对象,就是说那些对象需要通过AOP来进行一些功能的实现;advice:通知就是所谓的增强告诉程序对对象进行了那些功能的实现;pointcut:告诉程序增强需要从哪些地方开始;aspect:就是切点和通知的结合,告诉程序需要在哪个地方进行哪些功能的实现;weaving:织入将切面放到target中并创建代理对象的过程;Proxy:代理对象如果有接口用jdk的proxy没有用cglib.
- 关于AOP开发:必须要有target,advice,pointcut,aspect,proxy.spring中使用aspectJ进行开发,要创建target,advice,通过标签来进行切面和切点的声明.不需要去声明proxy.
-
Spring Bean 的作用范围有以下几种:
Singleton:单例模式无论有多少请求Spring IOC 中都只有一个实例. Prototype:多例模式有一个请求就会产生一个实例 Request:一个请求创建一个实例请求完后实例删除 Session: 与请求范围类似,确保每个 session 中有一个 bean 的实例,在 session 过期后,bean 会随之失效
- Spring的优点:降低耦合性实现解耦合;容器提供单例模式不用自己去写单例模式;AOP实现权限拦截等功能;对主流框架进行整合;DI降低对象替换的复杂度;
- Spring的核心类:BeanFactory用来进行对象的实例化;BeanWrapper:提供统一的set,get方法;Applicationcontext: BeanFactory的子类提供框架的实现
- Bean的调用有三种方式:BeanWrapper,BeanFactory,Applicationcontext的子类ClassPathXmlApplicationContext最常使用后一种.