基本概念
Spring框架是为了解决软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
Spring是分层的Java SE/EE应用full-stack(各层都有解决方案)轻量级开源框架,以IoC反转控制和AOP面向切面编程为内核
Spring提供了展现层SpringMVC(Web层)和持久层Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界中众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架
Spring的优势:
方便解耦,简化开发
通过
Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码造成的过度耦合,用户也不必再为单例模式类,属性文件解析等底层的需求编写代码,可以更专注于上层任务AOP编程的支持通过
Spring的AOP功能,方便进行面向切面编程,许多不容易用传统OOP实现的功能可以通过AOP实现声明式事务的支持
可以将我们从单调烦闷的事务管理代码(提交事务,回滚等)中解脱出来,通过声明方式灵活的进行事务管理,提高开发效率和质量
方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情
方便集成各种优秀的框架
Spring对各种优秀的框架(Struts、Hibemate、Hessian、Quartz等框架)有很好的支持降低
Java EE API的使用难度Spring对Java EE API(如JDBC、JavaMail、远程调用等)进行了薄薄的封装层(模板),使这些API的使用难度大为降低Spring的源代码设计巧妙,处处体现了Java设计模式的灵活运用,其源代码是Java技术学习的最好典范
Spring的体系结构

- 最顶部的两层是数据访问层和
Web应用层,其实现要借助中间层的工具- 中间层包括
AOP和切面等编程技术Core Container:核心容器,主要涉及的是IoC的知识点,有主要的四个部分:产生对象的容器、核心、上下文和Spring的表达式语言Test表示整体的框架都可以进行测试