简化Java开发
Spring采取了以下4种关键策略:
- 基于POJO的轻量级和最小侵入性编程
- 通过依赖注入和面向接口实现松耦合
- 基于切面和惯例进行声明式编程
- 通过切面和模板减少样板式代码
DI(依赖注入)
目的:实现松耦合
传统:两个类互相协作时,每个对象负责管理与自己相互协作的对象(即它所依赖的对象)的引用,这将会导致高度耦合和难以测试的代码。
Spring:通过依赖注入,对象的依赖关系将有系统中负责协调各对象的第三方组件在创建对象的时候进行设定。对象无需自行创建或管理他们的依赖关系。
AOP(面向切面编程)
目的:分离功能形成可重用的组件
多个组件中分散着多个系统服务:
1. 实现系统服务的功能代码将会重复出现在多个组件中
2. 组件会因为那些与自身核心业务无关的代码变得混乱
AOP将这些服务模块化,并以声明的方式将他们应用到组件中。
Spring容器
应用上下文:
- AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。
- AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文。
- ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。
- FileSystemXmlapplicationcontext:从文件系统下的一个或多个XML配置文件中加载上下文定义。
- XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义。
Spring模块
装配Bean
三种方式:
- 自动化装配Bean
- 通过JavaConfig装配Bean
- XML装配Bean