1.什么是框架
源自于建筑学,隶属土木工程,后发展到软件工程领域 软件工程框架:经过验证的,具有一定功能的,半成品软件 经过验证 具有一定功能 半成品
2.Spring是什么
Spring是分层的JavaSE/EE应用full-stack 轻量级 开源的 半成品框架,以 IOC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。
3. Spring的体系结构
底层是核心容器
Beans
Core
Context
SpringEl表达式中间层技术
中间层技术
AOP
Aspects
应用层技术
数据访问与数据集成
Web集成
Web实现
基于Test测试
4.Spring优势
1.方便解耦,简化开发 2.方便集成各种优秀框架 3.方便程序的测试 4.切面编程的支持 5.声明式事务的支持@Transactional 6.降低JavaEE API的使用难度
5.IOC 反转控制
5.1 概念
IoC 全称为 Inversion of Control ,翻译为 “控制反转”,它还有一个别名为 DI( Dependency Injection ),即依赖注入。本质的功能就是:就是由 Spring IOC 容器来负责对象的生命周期和 对象之间的关系
6.生命周期
(1)当scope的取值为singleton时(系统默认的)
Bean的实例化个数:1个 Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例 Bean的生命周期: 对象创建:当应用加载,创建容器时,对象就被创建了 对象运行:只要容器在,对象一直活着 对象销毁:当应用卸载,销毁容器时,对象就被销毁了
(2)当scope的取值为prototype时
Bean的实例化个数:多个 Bean的实例化时机:当调用getBean()方法时实例化Bean 对象创建:当使用对象时,创建新的对象实例 对象运行:只要对象在使用中,就一直活着 对象销毁:当对象长时间不用时,被 Java 的垃圾回收器回收了 ( jvm gc垃圾回收)
7.注解开发
@Component(使用在类上用于实例化Bean)
@Controller(使用在web层类上用于实例化Bean)
@Service(使用在service层类上用于实例化Bean)
@Repository(使用在dao层类上用于实例化Bean)
@Autowired(使用在字段上用于根据类型依赖注入)
@Qualifier(结合@Autowired一起使用用于根据名称进行依赖注入)
@Resource(相当于@Autowired+@Qualifier,)
@Value(按照名称进行注入注入普通属性)