什么是Spring?
Spring是Java企业应用级开发开源轻量级的框架。是一个全栈式的轻量级框架,在web层,业务层,持久层,都提供了很好的支持。
- web层: Spring MVC
- 业务层: Spring IOC
- 持久层: Spring对JDBC以及一些ORM框架提供了支持,如mybatis
什么是Spring IOC?IOC是如何解耦的?
Spring IOC( Inversion of Control)控制反转。本该由程序员通过new关键字创建对象,转交给了Spring容器创建对象。
IOC最大的作用就是解耦。
那么IOC是如何解耦的呢?
在没有Spring IOC之前,如果我们要降低类与类之间的耦合,经常会使用大工厂。大工厂里面提供获取类对象的方法
public static A getInstance() { 对象创建的具体实现 }
如果下次项目需求变更,不需要这种实现,那么直接更改大工厂中的方法就可以了。但是这样大工厂还是会和类有耦合。那么Spring为了解决这个问题,就提供了配置文件来代替大工厂中获取实例对象的方法。因此Spring 是通过XML+ 反射+ 大工厂实现解耦的。
什么是DI?
DI依赖注入,把IOC控制的对象,注入到对应使用类中的过程叫做DI。
比如A类中要使用B类,Spring把B类注入到A类中,就叫做依赖注入。
注入有三种:
- 构造器注入
- setter方法注入(常用)
- 接口注入