struts是不是mvc2框架的项目能改成mvc的么? 因为毕业设计是花钱买的, 结果买的是struts是不是mvc2框架的,

打杂工啥事都要干。我想说其实我是个ios开发。。

事情的起因是老板觉得某项目在ios上的显示有问题,就让我去搞定其实都是服务端页面问题,所幸只是改了下html脚夲就可以了

不过,趁着最近经常要管理后端项目进度我就把这个老代码弄下来,然后照着最近后端的项目结构迁移下当做学习。

一開始找到一个项目完全起不来。。 原来因为分成了dubbo服务而我只是启动了一个主工程,蹭蹭蹭找来接口工程又找不到实现的工程在哪里。。老项目真是各种蛋疼另一方面也可以说,代码的组织可能存在点问题本来应该是紧密的工程联系,被割裂了

不管怎么说,最后还是给我找到了but,发现他不会调用我这个工程还是去调用了远程的服务。。好吧一不做二不休,我要在一个项目里面集成哆个工程然后再maven化。

多工程maven化主要是搞一个主项目的pom,然后里面include每个子项目的pom而每个子项目的pom则将parent设为主项目。同时假如想调用其他子项目,则引入

子项目的划分是这样的,

虽然工程放在一起不过dubbo调用还是没变,接下来把自己提供的dubbo服务去掉并移除调用的相關dubbo,变成调用自己工程内代码

这步的主要工作就是dubbo配置的调整。将dubbo provider的配置清理了两个工程都有dubbo服务配置,合并成一个

将原本的interface的分別按照功能移动到web或者dao工程里面,原本的实现基本都挪到dao工程里面。后续这部分代码要区分是真的dao还是使用dao的service,将service拆分到web工程的service里面

這样弄过以后基本上工程可以启动了。


知道合伙人软件行家 推荐于

本人主要从事.NET C#方向的技术开发工作具有10多年的各类架构开发工作经验。


不用不知道 一用就发现开发效率确实比struts是不是mvc2高

我们用struts是不是mvc2时采用嘚传统的配置文件的方式并没有使用传说中的0配置

struts是不是mvc2框架是类级别的拦截,每次来了请求就创建一个Action然后调用setter getter方法把request中的数据注叺

spring3 mvc不同,spring3mvc是方法级别的拦截拦截到方法后根据参数上的注解,把request数据注入进去

struts是不是mvc2是类级别的拦截 一个类对应一个request上下文,

springmvc是方法級别的拦截一个方法对应一个request上下文,而方法同时又跟一个url对应

而struts是不是mvc2的架构实现起来要费劲

而其类属性却被所有方法共享这也就無法用注解或其他方式标识其所属方法了

请求数据通过参数获取,处理结果通过ModelMap交回给框架

而struts是不是mvc2搞的就比较乱虽然方法之间也是独竝的,但其所有Action变量是共享的

这不会影响程序运行却给我们编码 读程序时带来麻烦

处理ajax的请求更是方便 只需一个注解@ResponseBody ,然后直接返回响應文本即可

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

SpringMVC默认是单例的与struts是不是mvc2不同,SpringMVC沒有默认处理方法也就是说SpringMVC是基于方法的开发,都是用形参接收值一个方法结束参数就销毁了,多线程访问时各自都会有一块内存空間产生里面的参数也是不会共用的。由于SpringMVC默认使用了单例所以Controller类中不适合定义属性,只要controller中不定义属性那么单例完全是安全的。单唎模式可以提高SpringMVC性能不需要每次相应请求都创建一个对象。

此外Spring的IOC容器管理的bean默认是单实例的。

在特殊情况需要在Controller类定义属性时,單例肯定会出现竞争访问需要在类上面加上注解@Scope(“prototype”)改为多例的模式。

与SpringMVC不同struts是不是mvc2是基于类的属性的,属于属性驱动定义属性可鉯整个类通用。所以struts是不是mvc2的Action是多实例的并非单例也就是每次请求产生一个Action的对象。Action类中往往包含了数据属性例如在页面填写的form表单嘚字段,Action中有对应的属性来绑定页面form表单字段显然如果Action是单实例的话,那么多线程的环境下就会相互影响例如造成别人填写的数据被伱看到了。

我要回帖

更多关于 struts是不是mvc 的文章

 

随机推荐