Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。
Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。
为什么说Spring是一个一站式的轻量级开源框架呢?EE开发可分成三层架构,针对JavaEE的三层结构,每一层Spring都提供了不同的解决技术。
l WEB层:SpringMVC
l 业务层:Spring的IoC
l 持久层:Spring的JDBCTemplate(Spring的JDBC模板,ORM模板用于整合其他的持久层框架)
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,它主要是为了解决企业应用开发的复杂性而诞生的:
l 目的:解决企业应用开发的复杂性;
l 功能:使用基本的JavaBean代替EJB;
l 范围:任何Java应用。
Spring的存在是因为它自身拥有着得天独厚的优势:
l 它定位的领域是许多其他流行的framework没有的;
l Spring是全棉的和模块化的;
l 它的设计从底部帮助你编写易于测试的代;
l Spring是潜在的一站式解决方案。
Spring天生就存在如下的优点:
l 低侵入式设计,代码污染率极低;
l Write Once,Run Anywhere;
l DI有效的降低了耦合度;
l AOP提供了通用任务的集中管理;
l ORM和DAO简化了对数据库访问;
l 高度开放性,并不强制。
Spring的优点可以给开发带来的好处:
l 可以有效组织中间层对象;
l 使用统一的配置文件;
l 促进良好的变成习惯,减少变成代价;
l 易于单元测试;
l 使EJB成为一种备选;
l 为数据存取提供了一致的框架;
Spring的特点:
l 方便解耦,简化开发;
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。
l AOP编程的支持;
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
l 声明式事务的支持;
只需要通过配置就可以完成对事务的管理,而无须手动编程。
l 方便程序的测试;
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
l 方便集成各种优秀框架;
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持。
l 降低JavaEE API的使用难度;
Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
l Spring的源码是经典学习范例。
Spring的核心模块:
l 核心容器(Spring Core);
l 应用上下文(Spring Context);
l AOP模块(Spring AOP);
l JDBC和DAO模块(Spring DAO);
l 对象实体映射(Spring ORM);
l Web模块(Spring Web);
l MVC模块(Spring Web MVC);
Spring总结:
l Spring带来了复杂的J2EE开发的春天;
l 它的核心时轻量级的IoC容器,它的目标时为J2EE应用提供了全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间可以彼此独立,也可以使用其他的框架方案加以代替;
l Spring希望为企业应用提供一站式的解决方案。