『架构师公社』你对Spring框架的认识有哪些?

Spring框架Spring框架是当前Java领域应用最广的框架 , 它之所以那么成功 , 这主要是得益于它的设计理念 。 它的理念包括IoC(InversionofControl , 控制反转)和AOP(AspectOrientedProgramming , 面向切面编程) 。 下面我们就来一起学习下Spring这个优秀的开源框架 。
什么是Spring?
Spring是分层的JavaSE/EE应用full-stack轻量级开源框架 , 以IoC(InversionofControl , 控制反转)和AOP(AspectOrientedProgramming , 面向切面编程)为内核 , 提供了展现层SpringMVC和持久层SpringJDBC以及业务层事务管理等众多的企业级应用技术 , 还能整合开源世界众多著名的第三方框架和类库 , 逐渐成为使用最多的JavaEE企业应用开源框架 。
『架构师公社』你对Spring框架的认识有哪些?
文章图片
Spring的优势
1.方便解耦 , 简化开发
【『架构师公社』你对Spring框架的认识有哪些?】通过Spring提供的IoC容器 , 我们可以将对象之间的依赖关系交由Spring进行控制 , 避免硬编码所造成的过度程序耦合 。 有了Spring , 用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码 , 可以更专注于上层的应用 。
2.AOP编程的支持
通过Spring提供的AOP功能 , 方便进行面向切面的编程 , 许多不容易用传统OOP实现的功能可以通过AOP轻松应付 。
3.声明式事务的支持
在Spring中 , 我们可以从单调烦闷的事务管理代码中解脱出来 , 通过声明式方式灵活地进行事务的管理 , 提高开发效率和质量 。
4.方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作 , 在Spring里 , 测试不再是昂贵的操作 , 而是随手可做的事情 。 例如:Spring对Junit4支持 , 可以通过注解方便的测试Spring程序 。
5.方便集成各种优秀框架
Spring不排斥各种优秀的开源框架 , 相反 , Spring可以降低各种框架的使用难度 , Spring提供了对各种优秀框架(如Struts、Mybatis、Hessian、Quartz)等的直接支持 。
6.降低JavaEEAPI的使用难度
Spring对很多难用的JavaEEAPI(如JDBC , JavaMail , 远程调用等)提供了一个薄薄的封装层 , 通过Spring的简易封装 , 这些JavaEEAPI的使用难度大为降低 。
7.Java源码是经典学习范例
Spring的源码设计精妙、结构清晰、匠心独运 , 处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣 。 Spring框架源码无疑是Java技术的最佳实践范例 。 如果想在短时间内迅速提高自己的Java技术水平和应用开发水平 , 学习和研究Spring源码将会使你收到意想不到的效果 。 Spring的体系结构
Spring框架采用分层架构 , 根据不同的功能被划分成了多个模块 , 这些模块大体可分为DataAccess/Integration、Web、AOP、Aspects、Instrumentation、Messaging、CoreContainer和Test 。
『架构师公社』你对Spring框架的认识有哪些?
文章图片
1.DataAccess/Integration(数据集成/访问)
JDBC模块:提供了一个JDBC的抽象层 , 大幅度减少了在开发过程中对数据库操作的编码 。
ORM模块:对流行的对象关系映射API , 包括JPA、JDO、Hibernate和iBatis以及Mybatis提供的集成层 。
OXM模块:提供了一个支持对象/XML映射的抽象层实现 , 如JAXB、Castor、XMLBeans、JiBX和XStream 。
JMS模块:指Java消息服务 , 包含的功能为生产和消费的信息 。
Transactions事务模块:支持编程和声明式事务管理实现特殊接口类 。
2.Web
WebSocket模块:全双工通信方式 , 即客户端和服务器之间的双向通信 。
Servlet模块:包括模型—视图—控制器(MVC)实现Web应用程序 。