Core Container(核心容器)
Spring本身提供了一个属于自己的容器,可以用来负责维持对象的状态(生成,存在形式,销毁),或者一个操作的切面。容器核心组件如下:
- Beans:提供BeanFactory,是工厂模式的实现。Spring对所有Bean对象的管理,包含了对象间的关系配置以及一些对象实例化操作;
- Core:提供了Spring框架的基本组成部分。eg:依赖注入(DI),资源文件的访问,数据类型的转换;
- Context:提供对第三方库嵌入Spring应用的集成支持。提供一个完整的容器上下文,可以处理对象的生命周期/事务;
- Expression Language:表达式语句组件;
切面编程
- AOP:AOP(Aspect-Oriented Programming), 即 面向切面编程, 它与 OOP( Object-Oriented Programming, 面向对象编程) 相辅相成, 提供了与 OOP 不同的抽象软件结构的视角.在 OOP 中, 我们以类(class)作为我们的基本单元, 而 AOP 中的基本单元是 Aspect(切面)。Spring AOP提供了面向切面编程的实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。
- Aspect:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的面向切面编程框架,于此对应的还有ASM。
Data Access/Integration(数据访问/集成)
- JDBC:提供了一个JDBC的抽象层,减少了开发过程中对数据库操作的编码。
- ORM:对流行的对象关系映射API,包括JPA、JDO、IBaits和Hibernate提供了集成层支持。
- OXM:提供了一个对象与XML文件之间的互相转换。
- JMS:Java消息传递服务,包括使用和产生信息的特性,自4.1后与Spring-message模块集成。
- Transactions:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理。
WEB
- MVC:Spring提供了自己的MVC实现
- Struts:Spring支持Struts2的管理
- Servlet:包含了Spring的MVC和REST web Services实现。
Spring完全可以支持一个项目的独立开发,并且可以容纳其他框架同时存在的容器。