spring框架简介
Spring是一个开源框架,为简化Java开发而创建的。为了降低Java开发的复杂性,Spring采取了以下四种关键策略:
1.基于POJO的轻量级和最小侵入性编程;
2.通过依赖注入和面向接口实现松耦合;
3.基于切面和惯例进行声明式编程;
4.通过切面和模板减少样板式代码。
下面两个图分别表示的是Spring所包含的模块和Spring IOC 容器配置元数据的过程。
Spring的两个核心特性是DI(依赖注入)和AOP(面向切面编程)。
1.依赖注入
DI是由第三方组件负责在对象创建时设定各对象之间的依赖关系,对象无需自行创建或管理它们的依赖关系,这样就将依赖关系自动注入到需要它们的对象中。
从Spring 3.0开始,Spring容器提供了两种配置Bean的方式,一种是使用xml文件作为配置文件,另一中则是为了尽量消除配置文件而产生的基于注解的配置方式。依赖的注入方式有构造器注入、setter注入。
2.面向切面编程
切面能帮助我们模块化横切关注点,即影响应用多处的功能。例如安全就是一个横切关注点,应用中的许多方法都会涉及安全规则。
2-1 切面实现了横切关注点的模块化
继承和委托是最常见的实现重用通用功能的面向对象技术。但继承往往会导致一个脆弱的对象体系,即基类对整个对象体系影响过大;而使用委托可能需要对委托对象进行复杂的调用。
切面提供了另一个选择,在使用面向切面编程时,我们仍在一个地方定义一个通用功能,但我们可以通过声明的方式来定义这个功能以何种方式在何处应用,而无需修改受影响的类。
切面就是将横向关注点模块化,这样有两个好处:第一,每个关注点都只集中于一处,而不是分散到多处代码中;第二,服务模块更简洁,只包含主要关注点的代码,次要关注点的代码转移到切面中了。