Spring技术内幕:深入解析Spring架构与技术原理 --内容整理与记录(01)

Spring框架


1.Spring的设计理念和整体架构

1.1 Spring子项目

在spring官网有一些spring的子项目,了解了这些子项目,可以对spring有一个更好的了解,


1.2 Spring的设计目标

设计理念:在java EE的应用开发中,支持pojo和使用javaBean的开发方式,使应用面向接口开发,充分支持(面向对象)的设计方法
spring的设计理念采用了相对EJB而言的轻量级开发思想,即使用POJO的开发方式,只需要使用简单的Java对象或者JavaBean就能进行java EE开发,这样的开发入门、测试、应用部署都的到了简化。


1.3 Spring的整体架构

Spring基本组成模块:
1. Spring IoC:包含了最为基本的IoC容器BeanFactory的接口与实现,也就是说在这个Spring的核心包中,不仅定义了IoC容器的最基本接口,也提供了一系列这个接口的实现,如XmlBeanFactory就是一个最基本的BeanFactory,从名字上可以看出,他可以通过xml文件配置Bean定义信息,除此之外,Spring IoC容器还提供了一个容器系列,如SimpleJndiBeanFactory、StaticListableBeanFactory等
2. Spring AOP:这也是Spring的核心模块,围绕着AOP的增强功能,Spring继承了ApectJ作为AOP的一个特定实现
3. **Spring MVC:**Spring MVC是一个企业级应用常用的框架,这个模块以DispatchServlet为核心,实现了MVC模式,包括怎样与Web容器环境的集成,Web请求的拦截,分发,处理,和ModelAndView数据的返回,以及如何集成各种UI视图展现和数据表现,如PDF,Excel等,通过这个模块,可以完成Web的前端设计。
4. Spring JDBC/Spring ORM:在企业应用中,对以关系型数据库为基础的数据库的处理是企业应用的一个重要方面,而对于关系数据库的处理,Java提供了JDBC来进行操作,但在实际的应用中,单纯使用JDBC的方式还是有些繁琐,所以在JDBC规范的基础上,Spring对JDBC做了一层封装,使通过JDBC完成对数据库的操作更加简洁。Spring JDBC包提供了JdbcTemplate作为模板类,封装了基本的数据库操作方法,如数据的查询,更新等,另外,Spring还提供了RDBMS的操作对象,这些操作对象可以使应用更加面向对象的方法来使用JDBC,比如可以使用MappingSqlQuery将数据库数据记录直接映射到对象集合,类似一个极为简单的ORM工具,除了通过Spring JDBC对数据库进行操作外,Spring还提供了许多对ORM工具的封装,这些封装包括了常用的ORM工具,如Hibernate,iBatis等,这一层封装的作用是让应用更方便的使用这些ORM工具,而不是替代这些工具,比如可以把对这些工具的使用和Spring提供的声明式事务处理结合起来,同时,Spring还提供了许多模板对象,如HibernateTemplate这样的工具来实现对Hibernate的驱动,这些模板对象往往包装使用Hibernate的一些通用过程,比如Session的获取和关闭,事务的处理和关联等,从而把一些通用的特性实现抽象到Spring中来,更充分的体现了Spring的平台作用
5. Spring事务处理: Spring事务处理是一个通过Spring AOP实现自身功能增强的典型模块,在这个模块中,Spring把企业应用开发中事务处理的主要过程抽象出来,并且简洁的通过AOP的切面增强实现了声明式事务处理的功能,这个声明式事务处理的实现,使应用只需要在IoC容器中对事务属性进行配置即可完成,同时,这些事务处理的基本过程和具体的事务处理器实现是无关的,也就是说,应用可以选择不同的具体的事务处理机制。
6. Spring远端调用: Spring为应用带来的一个好处就是能够将应用解耦,应用解耦,一方面可以降低设计的复杂性,另一方面,可以在解耦以后将应用模块分布式的部署,从而提高系统整体的性能。在后一种应用场景下,会用到Spring的远端调用,这种远端调用是通过Spring的封装,为应用屏蔽了各种通信和调用细节的实现,同时通过这一层的封装,使应用可以通过选择不同的远端调用来实现,比如可以使用HTTP调用器,可以使用第三方的二进制通信实现Hessian/Burlap,甚至还封装了传统Java技术中的RMI调用。
7. Spring应用: 从严格意义上说,这个模块不属于Spring的范围,这部分的应用支持,往往来自一些使用的非常广泛的Spring子项目,或者该子项目本身就可以看做一个独立的Spring应用,比如为Spring处理安全问题的Spring SCEGI后来转化为Spring子项目的Spring Security OAuth等,这个Spring应用支持的部分还有一个重要的组成,那就是包括了其他的一些模块,这些模块提供了许多Spring应用与其它技术实现的相关接口,比如与各种J2EE实现规范的接口,对JMS,JNID,JMX,JavaMail等的支持,Spring应用和Flex前端的接口,Spring应用移植到OSGi平台上运行的接口,通过这个模块的支持,使Spring应用可以便利和简洁点容纳第三方的技术实现,不但丰富了Spring应用的功能,而且丰富了整个Spring生态圈,使Spring应用的越来越广泛。


1.4 Spring的应用场景

通过介绍Spring架构设计,我们了解到Spring是一个轻量级的框架,在Spring这个一站式的应用平台,或框架中,其中的各个模块处理依赖IoC容器和AOP之外,相互之间并没有很强的耦合性,Spring的最终目标是简化应用开发的编程模型。它所提供的服务,可以贯穿应用到整个软件中,从最上层的Web UI到底层的数据操作,到其他企业信息数据的继承,再到各种J2EE服务的使用,等等,这些企业应用服务,Spring都通过其特有的IoC容器和AOP模块实现,在实现过程中,Spring没有把这种复杂性转换成自己被使用的复杂性,这点无疑是成功的,同时大大拓宽了Spring的应用场景,一方面,我们可以把Spring当做一个整体来使用,另一方面,也可以各取所需,把Spring的各个模块拿出来独立使用,这取决于我们队Spring提供服务的具体需求,例如,这些需求可能来自一个完整的Java EE企业应用开发需求,可以仅使用Spring的某些模块,如IoC容器,载入我们可以使用Spring继承其他的J2EE服务。

这本书感觉初期比较不好理解,没学多久

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值