深圳高品质网站建设服务,局域网网站建设的步骤过程,互联网站备案表,制作网站的图片哪来项目刚刚换了web层框架#xff0c;放弃了struts2改用spring3mvc当初还框架的时候目的比较单纯---springmvc支持rest#xff0c;小生对restful url由衷的喜欢不用不知道 一用就发现开发效率确实比struts2高我们用struts2时采用的传统的配置文件的方式#xff0c;并没有使用传…项目刚刚换了web层框架放弃了struts2改用spring3mvc当初还框架的时候目的比较单纯---springmvc支持rest小生对restful url由衷的喜欢不用不知道 一用就发现开发效率确实比struts2高我们用struts2时采用的传统的配置文件的方式并没有使用传说中的0配置spring3 mvc可以认为已经100%零配置了(除了配置springmvc-servlet.xml外)比较了一下strus2与spring3 mvc的差别struts2框架是类级别的拦截每次来了请求就创建一个Action然后调用setter getter方法把request中的数据注入struts2实际上是通过setter getter方法与request打交道的struts2中一个Action对象对应一个request上下文spring3 mvc不同spring3mvc是方法级别的拦截拦截到方法后根据参数上的注解把request数据注入进去在spring3mvc中一个方法对应一个request上下文好了 我们来整理一下struts2是类级别的拦截 一个类对应一个request上下文springmvc是方法级别的拦截一个方法对应一个request上下文而方法同时又跟一个url对应所以说从架构本身上 spring3 mvc就容易实现restful url而struts2的架构实现起来要费劲因为struts2 action的一个方法可以对应一个url而其类属性却被所有方法共享这也就无法用注解或其他方式标识其所属方法了spring3mvc的方法之间基本上独立的独享request response数据请求数据通过参数获取处理结果通过ModelMap交回给框架方法之间不共享变量而struts2搞的就比较乱虽然方法之间也是独立的但其所有Action变量是共享的这不会影响程序运行却给我们编码 读程序时带来麻烦spring3 mvc的验证也是一个亮点支持JSR303处理ajax的请求更是方便 只需一个注解ResponseBody 然后直接返回响应文本即可附上一段代码Java代码RequestMapping(value/whitelists)public String index(ModelMap map){Account account accountManager.getByDigitId(SecurityContextHolder.get().getDigitId()) ;List groupList groupManager.findAllGroup(account.getId()) ;map.put(account, account);map.put(groupList, groupList);return /group/group-index ;}//ResponseBody ajax响应RequestMapping(value/whitelist/{whiteListId}/del)ResponseBodypublic String delete(PathVariable Integer whiteListId){whiteListManager.deleteWhiteList(whiteListId) ;return success ;}评论截选注解和性能没有关系Servlet的生命周期是这样的在调用这个Servlet时候才创建这个Servlet的类并运行init()方法然后另外有人运行这个Servlet的时候并没有重启创建Servlet和运行里边的init()方法所以Servlet容器时单利的spring就是Servlet的封装的框架包括所有的依赖注入都是在tomcat启动的时候全部被初始化的其他的注解也一样也就是说注解也就是以前的xml的配置的替代以前没个请求都要运行一次xml吗并不是的xml是在tomcat启动时就读一次而已并利用里边的配置初始化很多的东西然后就不在使用了因为都成了单利的这样就保证了效率不是每次都把我们要注入的全部new一次而是tomcat启动的时候全部new一次以后就不new了保证了效率问题。所以我不明白那个 光看注解就知道性能不好注解就是替代了xml配置而已而且也是初始化一次也就是说和编写Servlet一样的在init()中做了很多的事而已并且以后不会在运行init()了除非你重启tomcat。struts1也一样运行一个action的方法的时候创建一个action类以后再运行就不会创建了其实也是Servlet的封装的框架。struts2特殊一些没个请求要new一个action来保证线程安全。所以效率会低一些但是不会低的特别离谱。这样也说明了spring3的mvc和struts1的mvc还有Servlet都是方法的线程安全所以在类方法声明的私有或者公有变量不是线程安全的struts2的确实是线程安全的。所有各有各的好处用什么当然是仁者见仁智者见智了。不过我们确实在新项目中大量的使用了spring3因为REST挺好的。