1.Spring简介
盗用一张图 解释一下spring framework的框架结构
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
(1)IOC:
控制反转 :Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。通俗的说:就是我们使用spring时,不需要关心怎么去实例化java对象(类构造器、静态工厂方法,实例工厂方法),spring会通过控制反转机制自动为我们实例化一个对象。
依赖注入 :Spring 使用 Java Bean 对象的 Set 方法或者带参数的构造方法为我们在创
建所需对象时将其属性自动设置所需要的值的过程就是依赖注入的基本思想。
(2) AOP:
面向切面编程 :在面向对象编程(OOP)思想中,我们将事物纵向抽象成一个个的对
象。而在面向切面编程中,我们将一个个对象某些类似的方面横向抽象成一个切面,对这个
切面进行一些如权限验证,事物管理,记录日志等公用操作处理的过程就是面向切面编程的
思想。
2.Spring框架中用到的设计模式
1.代理模式—Spring 中两种代理方式,若目标对象实现了若干接口,spring 使用 JDK 的java.lang.reflect.Proxy 类代理,若目标对象没有实现任何接口,spring 使用 CGLIB 库生成目标对象的子类。
2.单例模式—在 spring 配置文件中定义的 bean 默认为单例模式。
3.模板方法模式—用来解决代码重复的问题。比如: RestTemplate, JmsTemplate, JpaTemplate。
4.工厂模式—在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。Spring 中使用 BeanFactory 用来创建对象的实例。