1.什么是Spring
Spring 是众多开源java项目中的一员,基于分层的javaEE应用一站式轻量级开源框架,主要核心是 IOC(控制反转/依赖注入)与 AOP(面向切面)两大技术,实现项目在开发过程中的轻松解耦,提高项 目的开发效率。
Spring知识框架
2.IOC和DI
(1)IOC(控制反转)
将对象的创建的权利及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不再需要关注对象的创建和生命周期的管理,而是在需要时由Spring框架提供,这个由spring框架管理对象创建和生命周期的机制称之为控制反转。
注:IOC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。
(2)DI(Dependency Injection 依赖注入)
依赖:应用程序依赖IOC容器,在程序运行的时候,应用程序需要IoC容器来提供对象需要的外部资源;
注入:IOC容器注入应用程序的某个对象,注入了其所需要的的外部资源(对象、资源和数据等);
也可以看作,DI(依赖注入)其实就是IOC的另外一种说法,DI主要有两种注入方式,及Setter注入和构造器注入。
注意:IOC是一种思想,而DI是实现IOC的主要技术途径。
3. Spring IOC 容器 Bean 对象实例化
(1)构造器实例化
注:通过默认构造器创建 空构造方法必须存在 否则创建失败
-1.Spring环境搭建
-2.调整项目环境
-3.创建java模板类(Student类)
-4.配置文件spring.xml(通过id来直接管理Student的实例对象)
(resources文件夹下新建一个配置文件)
-5.获取实例化对象(通过spring.xml设置的id获取对象)
(test文件下写测试程序文件)
总结来构造实例化流程就是,创建java模板类—创建spring.xml配置文件—创建测试文件通过id获取bean得到一个对象。
(2)静态工厂实例化和实例化工厂实例化 (了解)
Spring使用静态工厂方法来创建Bean实例时,Spring将先解析配置文件,并根据配 置文件指定的信息,通过反射调用静态工厂类的静态工厂方法,并将该静态工厂方法的返回值作为 Bean实例,在这个过程中,Spring不再负责创建Bean实例,Bean实例是由用户提供的静态工厂方法提供的。
4.依赖注入方式
(4.1)Spring IOC 手动装配(注入)
Spring 支持的注入方式共有四种:set 注入、构造器注入、静态工厂注入、实例化工厂注入,其中的set注入和构造器注入尤为重要。
(4.1.1)set方法注入
注:使用set方法注入需注意:属性字段需要提供set方法。
-4.1.1.1业务对象 JavaBean
java模板类属性私有话,提供set方法
-4.1.1.2配置文件的bean标签设置property标签
注:set方法注入中 还有常用对象和基本类型、集合类型和属性对象等类型,这里的列子是JavaBean类型。
(4.2)Spring IOC 自动装配(注入)
对于 bean 的注入,除了使用 xml 配置以外,可以使用注解配置。注解的配置,可以简化配置文件, 提高开发的速度,使程序看上去更简洁。对于注解的解释,Spring对于注解有专门的解释器,对定义的 注解进行解析,实现对应bean对象的注入。通过反射技术实现。
自动装配(注入)有两种:@Resource注解名称查找对应的bean对象 (属性字段的名称与bean标签的id属性值相等)、@Autowired注解(默认通过类型(Class类型)查找bean对象 与属性字段的名称无关)