springframework
Spring Framework 是一个开源的应用程序框架和控制反转容器实现。
Spring 是面向 Bean 的编程。
组成
主要有20个模块组成,这些模块主要组成Core Container、Data Access/Integration、Web、AOP、Instrumentation、Message和Test几部分
IOC(控制反转) 的实现包 spring-beans 和 AOP(依赖注入) 的实现包 spring-aop 也是整个框架的基础,而 spring-core 是整个框架的核心,基础的功能都在这里。在此基础之上,spring-context 提供上下文环境,为各个模块提供粘合作用。在 spring-context 基础之上提供了 spring-tx 和 spring-orm包,而web部分的功能,都是要依赖spring-web来实现的。
- Core Container
由spring-core、spring-beans、spring-context、spring-context-support和spring-expression这几个模块组成。 - AOP & Intrumentation
由spring-aop、spring-aspects、spring-instrument和spring-instrument-tomcat模块组成。 - Messaging
包括spring-message模块是Spring集成项目(例如 Message, MessageChannel, MessageHandler等)为基于消息传递的应用服务的关键抽象,包含一系列的从消息映射到方法的注解,类似于SpringMVC基于编程模型的注解。 - Data Access/Integration
数据访问和集成层由JDBC、ORM、OXM、JMS和Transaction模块组成。
- spring-jdbc模块提供了jdbc抽象层,抽离了繁琐的jdbc代码和针对特定数据库的错误代码。
- spring-tx模块对实现了特定接口的类提供了编程式和声明式事务管理,并且对所有的POJO类都支持这种特性。
- spring-orm模块集成了通用对象关系映射接口,包括JPA、JDO和Hibernate等。使用spring-orm模块可以使这些orm框架可以和Spring提供的其他所有特性联合使用,例如前边提到的简单声明式事务管理特性。
- spring-oxm模块提供了支持Object/XML 映射实现的抽象层,这些oxm实现包括JAXB, Castor, XMLBeans, JiBX and XStream。
- spring-jms模块包括生产和消费消息的特性。从Spring-Framework 4.1开始提供了和spring-message模块集成的支持。
- web
Web层由spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet组成。 - test
spring-test模块通过JUnit和TestNG提供了单元测试和集成测试。它提供了一致性加载和缓存Spring上下文,也提供了用于单独测试使用的模拟对象。
核心概念
- 控制反转容器(依赖注入)
IOC(Inverse Of Control)控制反转,即把创建对象的权利交给框架,也就是指将对象的创建、对象的存储、对象的管理交给了spring容器。spring容器是spring中的一个核心模块,用于管理对象,底层可以理解为是一个map集合。 - 面向切面编程
面向切面编程(Aspect-Oriented Programming, AOP) 就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任分开封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。