参考资料
- 慕课网视频 Spring入门篇 http://www.imooc.com/learn/196
- Spring 官网 http://spring.io/
- Spring Framework http://projects.spring.io/spring-framework/
- Spring Framework文档:
英文文档 https://docs.spring.io/spring/docs/4.3.13.RELEASE/spring-framework-reference/htmlsingle/
中文翻译文档 http://shouce.jb51.net/spring/
概念理解
IOC与Bean容器
Inversion of Control,控制反转,应用程序本身不负责依赖对象的创建与维护,而是转移控制权给外部容器;目的是松耦合。通过IOC,Spring管理应用对象的配置和生命周期,从这个意义上,spring是一个容器。DI
Dependency Injection,依赖注入。DI是IOC的其中一种实现方式。目的是创建对象并组装对象之间的关系。
早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题。他总结出是获取对象的过程被反转了,获取对象的过程由自身主动管理变为IOC容器主动注入。基于这个结论,他为控制反转创造了一个更好的名字:依赖注入。所谓依赖注入,就是IOC容器在运行期间动态的将某种依赖关系注入到对象之中。所以,依赖注入和控制反转是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现具有依赖关系的对象之间的解耦。
AOP
Aspect Oriented Programming,面向切面编程,目的是内聚性。通过分离应用的业务逻辑和系统级服务,进行内聚性开发。例如:业务上的产商品数据入库,与系统上对入库操作的日志记录服务。框架
Bean容器
- Bean的配置项
- id 标识
- class 类
- scope 作用域
https://docs.spring.io/spring/docs/4.3.13.RELEASE/spring-framework-reference/htmlsingle/#beans-factory-scopes
默认是singleton模式 - constructor arguments 构建函数入参
- properties 成员属性
- autowiring mode 自动装载
- lazy-initialized beans 懒加载
- initialization and destroy methods 初始化和销毁
初始化基础包
两个包:
org.springframework.beans org.springframework.context
BeanFactory
提供配置结构和基础功能,加载并初始化Bean;
ApplicationContext
保存了Bean对象并在Spring中被广泛应用maven依赖:
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.13.RELEASE</version> </dependency> </dependencies>
初始化方式
- 本地文件
- classpath
- Web应用中依赖Servlet或Listener
Bean的实现两种方式:
- xml配置
- 注解