Spring框架概述
Spring框架四轻量级的开源的JaveEE框架
轻量级:jar包体积和数量少,可独立使用
开源:免费
框架:简化开发,可解决企业应用开发的复杂性
两个核心:IOC和Aop
IOP:控制反转,把创建对象的过程交给Spring管理
Aop:面向切面,不修改源代码的情况下,进行功能添加|增强
特点:
-方便解耦,简化开发
- etc
IOC容器
IOC(控制反转),把对象的创建和对象之间的调用过程,交给Spring进行管理
- 目的:耦合度降低
依赖注入:
当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
依赖注入有两种:设值注入、构造注入
所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。
技术描述:
Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。
采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。而具体获取的方法、对象被获取时的状态由配置文件(如XML)来指定
IOC底层原理
XML解析、工厂模式、反射
耦合度太高
工厂模式
IOC
IOC接口
IOC思想基于IOC容器完成,IOC容器底层就是工厂对象;
Spring提供IOC容器实现两种方式:(两个接口)
(1) BeanFactory:IOC容器基本实现,是Spring内部使用接口,不提供开发人员使用
*加载配置文件时不会创建对象,在获取或使用对象时才去创建对象
(2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般是由开发人员进行使用
*加载配置文件时就会把配置文件对象进行创建
ApplicationContext接口实现类
系统路径(X盘文件全路径)和类路径
IOC操作Bean管理
两个操作:
(1)Spring创建对象
(2)Spring注入属性
Bean管理操作有两种方式
(1)基于xml配置文件方式实现
- 基于xml方式创建对象
- 基于XML方式注入属性
使用set方法进行注入
使用有参数构造进行注入
- 创建类,定义属性,创建属性对应的有参数构造方法
- 在Spring配置文件中进行配置
indix="0"代表有参构造的第一个参数,1表示第2个参数
p名称空间注入
- 使用p名称空间注入,可以简化基于xml配置
(2)基于注解方式实现