初识Spring
简单了解Spring
Spring是一个轻量级的企业开源框架,于2003年兴起,由Rod Johnson创建!其目的是为了简化企业及应用程序的开发,Spring框架的核心是一个Ioc容器。
Spring框架结构
Core Container(核心容器)
由core,Bean,上下文和表达式语言模块组成
- Core模块:Spring的核心类库,主要实现Ioc功能。
- Beans模块:模块提供Bean Factory,提倡面向接口编程,所有的依赖关系都有Bean Factory来维护。
- Context模块:模块建立在由核心和 Bean 模块提供的坚实基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext 接口是上下文模块的重点。
- EL模块:提供强大的表达式语言支持。
Date Access/Integration(数据访问/集成模块)
包括JDBC,ORM,OXM,JMS 和事务处理模块 - JDBC:提供JDBC的JdbcTemplate,减少传统JDBC冗余的编码和事务控制。
- ORM:提供对象关系映射API,包括 JPA,JDO,hibernate 和 MyBatis,提供了集成层。
- OXM:提供了一个对Object/XML映射实现,将java对象映射成XML数据,或者将XML数据映射成java对象,Object/XML映射实现包括JAXB、Castor、XMLBeans和XStream。
- JMS:Java Messaging Service
- Transactions:用于Spring管理事务,支持编程和声明性的事物管理。
Web
由 Web,Servlet,Struts 和 Portlet 组成 - Web:提供了基本的面向 web 的集成功能,例如多个文件上传的功能和使用 servlet 监听器和面向 web 应用程序的上下文来初始化 IoC 容器。
- Web-Servlet:提供了一个Spring MVC Web框架实现,即:模型-视图-控制器(MVC)。
- Web-Struts:提供了与Struts无缝集成。
- Portlet:提供Portlet环境中实现MVC。
Aop&Aspects
- Aop:提供了面向方面的编程实现,允许自定义方法拦截器和切入点对代码进行干净地解耦,比如业务代码和日志代码的解耦。
- Aspects:提供了与 AspectJ 的集成。
Instrumentaiion
模块在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。Test
Spring支持Junit和TestNG测试框架,而且还额外提供了一些基于Spring的测试功能,比如在测试Web框架时,模拟Http请求的功能。Spring的特点
- 轻量级的容器:Spring容器是非侵入式的,对象创建和装配和生命周期完全由容器负责。
- 事务管理:Spring的事务管理可以让我们专注于业务逻辑的开发。
- AOP支持:方便面向切面编程,把通用的功能提取出来。
- JDBC抽象和ORM框架的支持:Spring简化了传统的JDBC冗余编码,并且非常方便集成第三方ORM,如Mybatis。
- Web支持:非常方便集成web框架,且Spirng提供了SpringMVC,可以无缝集成。