Java for Web学习笔记(五二):Spring框架简介(1)特点简述

来源:互联网 发布:域名重新定向 编辑:程序博客网 时间:2024/05/17 14:29

反转控制:Inversion Control

  反转控制(IoC,Inversion Control)在Spring中,如果A依赖于B,在runtime中实现,而不是在compile中实现。这使得同样的代码,用于不同的环境,模拟环境,测试环境或者生产环节。

  实现Inversion Control的最常用技术是依赖注入(DI,Dependency Injection)。一个类将声明依赖另一个接口,在runtime时根据依赖注入实例。

Aspect-oriented Programming

  Sping提供实例化和依赖,可以封装依赖注入的实例,装饰其,调用其它的处理。简单说就是通过annotate的注释来调用某个处理,如安全限制处理等等。我们看一个简单的PHP例子:

def aopLogic(f):     def warp():         print("befor....")         f();         print("after...")     return warp @aopLogic def myMethod():     print("my method pass!")myMethod()
  如果不加@aopLogic的装饰,调用时需要aopLogic(myMethod)()

数据访问和事务管理

  Spring提供数据库数据和java对象的映射,通过annotation对事务返回异常进行处理。

应用消息:Application Message

  Spring提供松耦合的消息系统,publish-subscribe(发布订购模式)。发布者无需关系谁订购。可以扩展为跨应用集群。(好设计)

MVC:Model-View-Controller

  Controller中的方法被映射到不同的请求URL,方法或者属性。Model以Map<String,Object>的方式从controller传递到view。从contoller返回的View或者view名字将forward到特定的jsp view。在典型的HTML view中,Spring可以自动生成文本view、文件下载view,XML或者JSON View。

  下面是Spring的MVC架构[1],大致了解一下MVC的架构,Spring帮忙完成了很多的代码。


  1. DispatcherServlet收到请求
  2. DispatcherServlet分派任务给HanderMapping,让其选择一个合适controller。HandlerMapping根据request URL的匹配选择controller,将Handler和Controller返回给DispatcherServlet。
  3. DispatcherServlet分配任务给HandlerAdapter,让其执行controller的业务逻辑。
  4. HandlerAdapter调用Controller的业务逻辑处理
  5. Controller执行额业务逻辑,将处理结果放入Model,返回view的逻辑名字给HandlerAdapter
  6. DispatcherServlet分配任务给ViewResolver,让其解析View名字相关的的View,ViewResolver将匹配该view名字的View返回给DispacherServlet。
  7. DispatcherServlet分配渲染处理任务给view
  8. View渲染Model数据,并返回response。

相关链接: 我的Professional Java for Web Applications相关文章
1 0
原创粉丝点击