Spring的使命:简化Java开发
Spring 中的组件:任意形式的POJO或叫做JavaBean
Spring关键策略
- 基于POJO的轻量级和最小侵入性编程(即一个类在Spring应用或非Spring应用中都发挥同样的作用)
- 通过依赖注入和面向接口实现松耦合
- 基于切面和惯例进行声明式编程
- 通过切面和模板减少样板式代码
注入(DI)与装配
按照传统的做法,每个对象负责管理与自己协作(或叫依赖)的对象,导致高耦合。
-
依赖注入
会将所依赖的对象自动交给目标对象,而不是让目标对象去取。 -
装配
即告知Spring各组件间的依赖关系。常见的装配方式:xml、JavaConfig、自动装配
AOP
系统中可能有多个模块会用到日志、安全控制的服务,若将相关代码写到每个模块中去,则会带来如下麻烦
- 如需改动,则每个调用点都要修改
- 模块会因这些与业务无关的代码而变得混乱
有了AOP后,只需将它们在适当的地方声明为切面即可
Spring容器
我们在XML、JavaConfig中配置了bean和切面,那么这些文件如何加载?加载到哪里?答案是Spring容器
Spring容器负责创建bean、装配bean、存储bean及管理bean整个生命周期
Spring容器可分为两种类型
- bean工厂:更受欢迎
- 应用上下文:应用上下文有很多类型,例如从文件系统中或类路径中加载应用上下文等(不同类型的上下文获取只是各个构造函数的参数不同,即查找路径不同)。
网友评论