spring特点
轻量
从大小与开销两方面spring都是轻量的,完整的spring框架可以在一个大小只有1M多的JAR文件里发布,并且Spring所需的处理开销也是微不足道的。
spring是非侵入式的:典型的spring应用中对象不依赖于spring的特定类
控制反转
Spring通过一种控制反转IOC的技术促进了低耦合
当应用了IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象
面向切面
spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开
容器
Spring包含并管理对象的配置和声明周期,在这个意义上它是一个容器,
你可以配置你的每个bean如何被创建
基于一个可配置原型,你的bean可以创建一个单独的实例或者每次需要时都生成一个类
以及他们是如何互相关联的
框架
Spring可以将简单的组件配置,组合称为复杂的应用
在spring中,应用对象被声明式地组合,典型的是在一个XML文件里
Spring也提供了很多基础功能(事务管理,持久化框架集成等),将应用逻辑的开发留给开发
spring常用模块
核心容器
核型容器提供Spring框架的基本功能
核心容器的主要组件是BeanFactory,基于工厂模式实现
BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开
Spring上下文
Spring上下文是一个配置文件,向Spring框架提供上下文信息
Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能
Spring AOP
通过配置管理特性,Spring AOP模块直接将面向切面的编程集成到了Spring框架中
可以将一些通用任务,如安全、事务、日志等集中进行管理,提高了复用性和管理的便捷性
Spring DAO
为JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误信息
异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)
Spring DAO的面向JDBC的异常遵从从通用的DAO异常层次结构。
Spring ORM
Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具
其中包括JDO、Hibernate和iBatis SQL Map。所有这些都遵从Spring的通用事务和DAO异常层次结构。
Spring Web模块
Web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文
Spring框架支持与Jakarta Struts的集成,web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作
Spring MVC模块
MVC框架是一个全功能的构建web应用程序的MVC实现。
通过策略接口,MVC框架变成为高度可配置的
MVC容纳了大量视图技术,其中包括JSP\Velocity\Tiles\iText和POI
Spring主要jar包
org.springframework.core--Spring的核心工具包,其他包依赖此包
org.springframework.beans--所有应用都用到,包含访问配置文件、创建和管理bean等
org.springframework.aop--Spring的面向切面编程,提供AOP(面向切面编程)的实现
org.springframework.context--提供在基础IOC功能上的扩展服务,此外还提供许多企业级服务支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多重视图层框架集成
org.springframework.web.mvc--包含SpringMVC应用开发时所需要的核心类
org.springframework.transaction--为JDBC,HIBERNATE,JDO,JPA提供一致的声明式和编程式事务管理
org.springframework.web--包含Web应用开发时,用到Spring框架所需要的核心类。
org.springframework.aspects--Spring提供的对AspectJ框架的整合
org.springframework.test--对JUNIT等测试框架的简单封装
org.springframework.asm--spring3.0开始提供自己独立的asm jar包
org.springframework.context.support--Spring context的扩展支持,用于MVC方面
org.springframework.expression--Spring表达式语言
org.springframework.instrument.tomcat--Spring对tomcat连接池的集成
org.springframework.instrument--Spring对服务器的代理接口
org.springframework.jdbc--对JDBC的简单封装
org.springframework.jms--为简化jms api的使用而做的简单封装
org.springframework.orm--整合第三方orm实现,如hibernate,ibatis,jdo,jpa等
org.springframework.web.portlet--SpringMVC的增强
org.springframework.servlet--对JEE6.0 servlet3.0的支持
org.springframework.struts--整合struts框架的支持,更方便更容易集成struts框架