`

Spring MVC--------我在创智软件的面试

阅读更多
18号去了长沙创智软件面试了。距离今天已经三天了,明天后天又是周末。可能又没上了!打了电话去问,却是前台的电话。面试分两轮,也比较简单,只是自己没有整合过Spring的MVC。没有笔试,给五分钟看一个简单的程序,然后他会让你说说整个程序的执行过程。实在是糟糕啊!然后也问到了js,不过也很简单。不过还好,算是勉强过了吧!过后那人带我去见技术总监时说:看到我态度比较好,所以还是给你这个机会....   说实在的我还真不知道他为什么说我态度比较,他是怎么看出来的,简单的问答而已,时间也不长。跟技术总监坐在那谈了差不多一个小时,大部分问的些与技术无关的,像:你在以前的公司学到了些什么,还问到以前的做的项目开发的时间,数据建模工具。自己的发展方向,以及除了java之外还会其它什么,.... 然后还有公司的待遇、福利、自己要带电脑(笔记本,公司不提供机器,不过每个月可以拿补贴,还有中餐补贴)。说在我如果进到公司之后的的两个月里发了工资买一台笔记本(因为我跟他说是台式的,不方便),....什么都说了,最后说两天后会给我通知,如果一个星期内没有通知也就不要等了。
到今天也还没有啊,在我当时听来,以为成功了一半,至少有一半的把握会上的,但是还是输给了另一半啊!也还不知道有没有一点希望啊,真是想能进这个公司该多好啊!
好了,说下我对面试回来后对SpringMVC 的一些理论的总结吧:
一、SpringMVC是SpringFrameWork的后续产品,融合在Spring Web Flow
二、Spring MVC的简介:
   1、可以插入的MVC架构。这中架构可以通过一:内置的spring web框架  二是:Struts Web框架  来实现。
   2、spring。xml中还可以通过策略接口来实现其框架高度的配置,即:可配置多种视图技术,如:jsp  velocity tiles iTest POI
   3、Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色
三、Spring  MVC的优点:
   1、易于通view框架无缝集成,采用IOC便于测试
   2、典型的纯MVC构架,Struts是不完全基于MVC框架的
   3、与tapestry是纯正的Servlet系统,(这也是相对于Struts的优势)
四、与Webwork2、Struts的对比:
   1、spring MVC的配置就是spring的核心IOC容器的配置,spring MVC 的配置文件最先看到的不是action或是form,二是一些特定名字的bean及属性。其配置中扩展新MVC映射方式;在Contorller中定义Aop 都是简单的。
  2、Spring采用IOC配置使spring的MVC与spring IOC 容器整合变得非常的容易,配置一个bean给它一个controller就可以完成所有MVC 的任务。IOC容器实现减少开发量,urlMapping提供的property本身就是一个HashMap,配置完成,bean里的数据就自然存在了。
   3、spring提供明确的model、view和相应的数据结构。数据类型:ModelAndView。将显示的数据与结构封装在一个类中。而Struts与jsp是紧密耦合的,如果要替换成veloctiy还得另加一个plugin
  4、Spring中的Controller是Singleton的,线程不安全的。(strtus也一样)
    意味着每个request过来,系统都会用原有的实例去处理。导致:
     一不用每次都创建Controller,
     二由于只有一个Controller的实例,多个线程调用时出现线程死锁的问题
重点在下面:(处理流程)
一、请求发布:请求到达DispatcherServlet,服务器根据web。xml文件定义的url映射相应的请求发布到DispatherServlet中
二、请求的处理:DispatherServlet查找到HandlerMapping接口实现类,调用getHandler(),返回中包含0个或多个Interceptor和一个处理请求的Handler(DispatcherServlet调用interceptor中的prehandler()处理handler,handler相当于Struts中Action)
  三、视图处理:DispatherServlet会期望Hander返回ModelAndView,DispatherServlet会根据返回的ModelAndView对象所包含的信息进行视图的渲染。
  四、视图的渲染:常见的视图技术:jstl  veloctiy FreeMarker

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics