Spring MVC

再看看和重量的区,笔者看很多种说法,得最有道理的是代表是POJO       + IoC,重量的代表是Container+ FactoryEJB2.0是典型的重量级组件的技)我尽量使用Pojo很好理解,意就在于兼容性和可适性,移植不需要改原来的代。而IocFactory比起来,Ioc点是更大的灵活性,通配置可以控制很多注入的细节,而Factory模式,行是相固定的,生一个象就必接受它全部的特点,不管是否需要。其实轻和重量都是相的概念,使用源更少、运行负载更小的自然就算量。  

话题了,因Spring框架来了太多可以探的地方。比如它的非侵入性:指的是它提供的框架实现可以程序员编程却感不到框架的存在,这样所写的代并没有和框架定在一起,可以随抽离出来,也是Spring设计的目Spring是唯一可以做到真正的针对接口程,处处都是接口,不依赖绑定任何实现类。同Spring还设计了自己的事管理、象管理和Model2       MVC框架,封装了其他J2ee的服在里面,在实现上基本都在使用依注入和AOP的思想。由此我大概可以看到Spring是一个什概念上的框架,代表了很多秀思想,得深入学。笔者强调,学并不是框架,而是框架代表的思想,就像我当初学Struts……  

1Spring       MVC  

IoCAOP笔者在上篇已稍微解释过了,里先通SpringMVC框架来大家探一下Spring的特点吧。(竟大部分人已很熟悉Struts了,比一下吧)  

众所周知MVC的核心是控制器。Struts中的ActionServletSpring里面前端控制器叫做DispatcherServlet。里面充当Action件叫做Controller,返回的视图层对象叫做ModelAndView,提交和返回都可能要经过过滤件叫做Interceptor  

看看一个从求到返回的流程吧:  

 (1)   前台JspHtmlsubmit,将数据装入了request  

 (2)   求被Interceptor截下来,preHandler()方法出前置判断  

 (3)   求到达DispathcerServlet   

(4)   DispathcerServletHandler       Mapping来决定reuqest应该转发给哪个后端控制器Controller  

(5)   各式各的后端控制器Controller求,业务层对象来业务逻辑,然后返回一个ModelAndView  

(6)   Controller行完InterceptorpostHandle来做后置  

(7)   ModelAndView代表了呈画面是使用的Model数据象和View象,由于只能返回一个象所有起了个名字封装两个象。  

 (8)   ViewResolver象来解析个返回的ModelAndView应该到哪一个视图Jsp/Html等)中(包括Exception       Resolver  

 (9)   View制完成之后Interceptor又会跳出来行它的afterCompletion方法做善后理。当然Interceptor的行完全是配置的而不是制的。  

这样一个完整的流程就这样结束了,个人感SpringMVC框架稍显复杂,不像Struts-1容易上手。不管是ControllerModelViewRosovlerHandle MappingViewSpring MVC框架都已经为你提供了多种实现,想最大程度的减少程序编码,增加框架的适用性。大家有趣可以继续深入研究哈!  

2Spring       AOP  

得最初笔者教他人Spring是一个什么东西的候,个人都会提到AOP词语。笔者在上一篇已释过AOP基本原理,次来跟大家说说SpringAOP程吧。不同的AOP框架会有其AOP概念不同的实现方式,主要的差在于所提供的PointcutAspects的丰富程度,以及它如何被用程序、代理的方式等等。先熟悉一下AOP中的几个重要概念:  

 (1)   Cross-cutting:横切,白了就是需要理的集合  

 (2)   Aspects:将散落各的横切收集起来,设计成各个独立可重用的象称Aspects  

 (3)   Advice:横切的具体实现,即等待插入一段逻辑  

 (4)   Joinpoint:Advice插入流程的机点。  

 (5)   Pointcut:用于选择Joinpoint的程序构,可以通Annotation或者XML实现  

 (6)   Weave: Advice用至象之上的程称之为织入,有编译期、期、运行期三种时间点策略。  

如果你采用实现接口的方式,Spring会在期适用java动态代理,如果不实现接口,Spring会使用CGLIB生代理AOP的概念很大很泛,而Spring只使用了其中的部分特性,Spring的目框架,比如它只支持MethodJoinpoint,而不支持FieldJoinpoint,理由是了封装性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值