Spring知识整理(一) —— 整体架构

   Spring框架倡导基于POJO(Plain Old Java Object,简单Java对象)的轻量级开发理念,其框架整体结构如下图(盗图一份):

    在Spring框架中,其它所有模块(Module)都是建立在其核心容器(Core Container)之上的,这个核心容器实际上是一个Ioc容器的实现。当然在最底层的模块中,除了这个核心容器外,还提供了框架内部使用的各种工具类(当然在框架之外使用也是可以的)。
    在核心容器与工具类之上是各种轻便但功能强大的模块。
   
    首先是AOP模块,AOP作为Spring质量三角型中的一条边,其作用和功能型自然不言而喻。AOP能干些什么,以我的理解,就是根据你的描述,找到一些特定或者说有共同特点的方法,在方法执行前后甚至抛出异常时做一些事情。很简单是不是,但AOP有时可以减少很多相同代码的重复书写,比如DAO的事务管理,再比如各种的权限验证,这些代码哪怕是抽象成公共方法也需要在每个方法中调用,麻烦且容易忘记,AOP就很好的解决了这种问题。关于AOP的详细知识将在以后细细道来。

    AOP模块之后就是O/R Mapping模块和DAO and JDBC模块,这两个模块其实是构建在AOP模块之上的,因为Spring的事务的访问和管理是基于AOP完成的。这两个模块提供了数据访问的功能,但实际开发和使用中,ORM这部分还是大多交由专门的框架负责,而Spring为各种当前流行的ORM框架,如Hibernate、iBATIS、Toplink、JPA等提供了形式统一的集成支持。

    关于Application Context模块其实可以归到核心容器中,Spring的ApplicationContext是对BeanFactory的一个扩展,其提供了更强大的Ioc容器实现,包括了自动初始化、国际化支持、容器内事件发布等。
    而Web Context模块是Application Context的一个扩展,主要是为Web应用提供类似的功能。

    Spring MVC,是一套Spring自己的Web MVC框架,它让Spring对前台有了一个很好的支持,并且可以继承很多很好用的Web服务引擎,比如Velocity、CXF、XFire等。

    最后,Spring还提供了对JEE服务的集成,包括JMX、JMS、JCA、EJB、JavaMail等等。

    说到这里,我们可以看出,Spring真的非常强大,我们可以用Spring提供的功能独立的完成传统的三层架构,也可以集成各种自己喜欢的框架和服务。最主要的是Spring带来的轻量级和松散耦合的特定,是我们的应用可以很好的维护和扩展。Spring的各种标准让我们的应用更加规范化。而Spring的Ioc、AOP等功能也能够很好的简化我们的代码,节省开发时间。

    总体来说就是一句话,如果你真的想学习一个框架或者一项技术,那就从一开始就认为这个技术非常牛掰,这样才能激发你足够的热情与求知欲。

    最后再多嘴一句,Spring很庞大也不简单,我只是一个菜鸟,写出来的东西最主要的目的不是为了有多少人看,只是想自己总结一些留下一些东西而已。

猜你喜欢

转载自z-rabbit.iteye.com/blog/1848973
今日推荐