Spring
导语:
Spring是一个生态系统,在Spring 4.0中, Spring框架的发布版本包括了20个不同的模块, 每个模块会有3个JAR文件(二进制类库、 源码的JAR文件以及JavaDoc的JAR文件) 。
Spring框架由20个不同的模块组成
一、Spring的六个模块
Spring6个模块
Spring核心容器
- 容器是Spring框架最核心的部分, 它管理着Spring应用中bean的创建、配置和管理。
- 在该模块中, 包括了Spring bean工厂和多种Spring应用上下文的实现。
- 除了bean工厂和应用上下文, 该模块也提供了许多企业服务, 例如Email、 JNDI访问、 EJB集成和调度。
Spring的AOP模块
- 借助于AOP, 可以将遍布系统的关注点(例如事务和安全) 从它们所应用的对象中解耦出来。
数据访问与集成
- Spring的JDBC和DAO(Data Access Object) 模块抽象了使用JDBC编写代码通常会导致的大量样板式代码。该模块在多种数据库服务的错误信息之上构建了一个语义丰富的异常层, 以后我们再也不需要解释那些隐晦专有的SQL错误信息了!
- Spring没有尝试去创建自己的ORM解决方案, 而是对许多流行的ORM框架进行了集成, 包括Hibernate、 Java Persisternce API、Java Data Object和iBATIS SQL Maps。
- Spring的事务管理支持所有的ORM框架以及JDBC。
Web与远程调用
- 虽然Spring能够与多种流行的MVC框架进行集成, 但它的Web和远程调用模块自带了一个强大的MVC框架, 有助于在Web层提升应用的松耦合水平。
- 除了面向用户的Web应用, 该模块还提供了多种构建与其他应用交互的远程调用方案。
Instrumentation
- Spring的Instrumentation模块提供了为JVM添加代理(agent) 的功能。具体来讲, 它为Tomcat提供了一个织入代理, 能够为Tomcat传递类文件, 就像这些文件是被类加载器加载的一样。
测试
- 鉴于开发者自测的重要性, Spring提供了测试模块以致力于Spring应用的测试。
二、DI和AOP
依赖注入(DI)和面向切面编程(AOP)是Spring框架最核心的部分, 因此只有理解了如何应
用Spring最关键的功能, 你才有能力使用Spring框架的其他功能。
依赖注入(DI)
通过DI, 对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进行设定。 对象无需自行创建或管理它们的依赖关系。
依赖注入的两种方式:
- 基于XML的配置
<bean id="cdPlayer" class="soundsystem.CDPlayer"> </bean>
- 基于Java的配置
@Bean public CompactDisc compactDisc() { return new SgtPeppers(); }
不管使用的是基于XML的配置还是基于Java的配置, DI所带来的收益都是相同的。
面向切面编程(AOP)
DI能够让相互协作的软件组件保持松散耦合, 而面向切面编程(aspect-oriented programming, AOP) 允许你把遍布应用各处的功能分离出来形成可重用的组件。
AOP也有xml配置与java类配置两种方式,在此先不过多介绍,以后会专门整理。
结语:
Spring致力于简化企业级Java开发, 促进代码的松散耦合。 成功的关键在于依赖注入和AOP。 因此,依赖注入和AOP是Spring框架最核心的部分