什么是框架?
框架:框架是⼀组功能,我们能在这些功能的基础上构建应⽤程序。
什么是Spring?
Spring是一个轻量级的开源免费框架。
Spring的理念就是粘合剂,将各种框架整合在一起。
Spring的核心是IOC和AOP。
Spring的IOC/DI
IOC:Inversion Of Control,即控制反转,是一种设计思想。
将主动创建对象的方式反转成被动接受。
实现代码的解耦。
DI:Dependency injection,即依赖注入。依赖注入是IOC的一种实现。
在Spring中交由容器来管理所有对象。
什么是依赖倒置原则?
高层模块不应该依赖底层模块,二者都依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象
什么是控制反转?
什么是控制反转呢?
控制反转--就是依赖倒置原则的一种代码设计的思路。
采用的方法就是所谓的依赖注入(DI)
Spring框架的优点
使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之
间的耦合性,让我们更专注于应用逻辑;
可以提供众多服务,事务管理,WS等;
AOP的很好支持,方便面向切面编程;
对主流的框架提供了很好的集成支持,如Hibernate、Struts2、JPA等。
Spring DI机制降低了业务对象替换的复杂性;
Spring属于低侵入,代码污染极低;
Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择
Spring部分或全部;
Spring的容器
Spring 容器是 Spring 框架的核心。容器负责管理Bean对象。
容器的两种实现:
BeanFactory 容器:最简单的容器,给 DI 提供了基本的支持。
ApplicationContext 容器,继承的BeanFactory,拥有更丰富的功能。(国际化支持、资源访问、事件发布、载入多个配置文件)
容器提供的常用方法:
getBean():获取容器的中指定的bean对象。
containsBean():判断容器中是否存在指定的bean对象。
isPrototype():判断指定的bean是否为非单例对象。
isSingleton():判断指定的bean是否为单例对象。
Spring容器中的顶层接口是BeanFactory。ApplicationContext是它的子接口(注意这个也是个接口哦)。
ApplicationContext的三个主要的实现类:
ClassPathXmlApplication:它是从类的根路径下加载xml配置文件(推荐用这种)。
FileSystemXmlApplication: 它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。(但使用不灵活,不推荐)
AnnotationConfigApplication:当我们使用注解配置容器对象时,需要使用此类来创建spring容器。它用来读取注解。(Springboot默认使用这个)