被调到新的项目组,理论上算个Team Leader,没有真正的转正,老大最开始跟我说这边的事情我可以做主,但是美国那边有个架构师开始搭了个架子,意思是在这个架子的基础上做,试了下,发现很繁琐,为了增加一个方法,得修改好多个类。这个阶段其实是个过渡阶段,以后我们会使用Web Service,所以我们哟定义Web Service的接口,然后因为是过渡阶段,所以提供了EJB2的过渡方案和原来的系统整合,所以还得改Remote接口,Local接口可以直接从Service接口extends一下就行了,然后得修改Service的实现类,加上原先的架子里面,设计的是Service里面的每个public方法对应一个Operation类,这些类设计成Command模式,方便以后可以更好的进行负载的Dispatch,就这样,给Service增加一个接口,要完全实现得至少修改3个类,增加一个类,而且前两天也提过这个项目使用的Annotation的一个好处,但是这样一来,我要实现那个接口,也得在Finder里面增加方法。最终,我得修改4个类,增加一个类来增加一个Service接口。天啊,这个是我最讨厌的。
下周打算修改这个架子,取消EJB2的临时方案,使用Dynamic Proxy实现Service,同时可以引人Transaction(这个方案原来也用了,但是架构师以Transaction的问题否决了,那个时候还没有想到怎么解决Transaction的问题,前天突然想起来我的EJB单元测试框架就是用的自定义Transaction的),同时也抛弃Finder的那个方案,因为其实我的BaseOperation已经提供了进行Hibernate的查询的方便的基础功能。最重要的是Finder中定义的Query如果有问题的话修改后不能Hot Deploy,如果在Operation的方法体里面的修改就可以Hot Deploy。这样修改后,增加一个接口只需要修改Service然后增加一个Operation类实现就行了,只要改两个地方。
分享到:
相关推荐
"增加和修改共用一个页面"的策略就是一种常见的代码复用方法,它主要用于简化开发过程,减少资源消耗,提高系统的维护性和用户体验。这里我们将深入探讨Struts2框架与JSP结合下如何实现这一策略。 首先,Struts2是...
增加1:在添加页面,输入要添加的数据项均合理,检查数据库以及列表页是否添加了相应的数据2:在添加页面,留出一个必填项为空,检查是否会提示3:按照边界值等价类设计测试用例原则设计其他输入项测试用例4:不符合...
在IT领域,尤其是在网络开发和调试过程中,"修改/增加Chrome浏览器请求头"是一个常见的需求。这涉及到浏览器的网络通信机制以及对HTTP协议的理解。HTTP请求头是客户端(如Chrome浏览器)向服务器发送请求时携带的...
改写上面的类,增加一个类的静态属性“最小余额”和一个用来修改这个最小余额属性的方法。 改写上面的类,增加一个类的静态属性“活期利率”和封装这个属性的相应方法。 程序模块 实验后的结果验证 总结体会 通过...
在Android系统中,通常只有一个默认的网络接口,即Wi-Fi或移动数据,但有时开发者或企业用户可能需要在设备上同时使用多个以太网接口,例如在物联网(IoT)设备或工业应用中。Android 8.1版本引入了对多网口支持的功能...
3.15 我要检查一个数是不是在另外两个数之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
首先,在 Tomcat 文件夹的 conf\catalina\localhost 目录下(对于 Tomcat6 版本及其以上,需要自己创建 catalina 和 localhost 这两个文件夹),增加一个名为 project.xml 的文件(该文件名的 project 要和下面的...
标题中的“0通过修改注册表用键盘控制音量F11增大音量F12减小音量 20100314000735.rar”表明这是一个教程,教你如何通过修改Windows系统的注册表来实现使用F11键增加音量,F12键减少音量的功能。这一功能对于经常...
2. **文本比较**:`Enumerable.SequenceEqual`是LINQ的一个方法,可以用来比较两个序列(如字符串数组)是否相等。如果两个文本文件内容完全相同,此方法将返回`true`。若存在差异,可以遍历两个序列并使用`!=`...
3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
在编程世界中,`static` 是一个非常关键的修饰符,它改变了成员变量或方法的存储方式和访问权限。在Java等面向对象语言中,`static` 关键字的使用是一个经常讨论的话题,因为它涉及到类的静态和非静态成员的区别。这...
要链接到一个文档,单击Link to a Document,并输入文档路径名。 单击Tools工具栏中的Hyperlink工具,并单击图上某一个要素即可实现。 使用一个属性字段作为超链 在内容表中右击包含一个超链接字段的图层,然后...
除了这三种方法,还有一些其他的方法可以用来修改列表,例如 `+=` 操作符可以实现类似 `extend` 的效果,`list concatenation` 可以将两个列表合并成一个新的列表,但不会改变原有列表。此外,`append` 和 `extend` ...
previous up contents next C 语言常见问题集 原著:Steve Summit ... o 8.5 一个指针变量分配多少内存? o 8.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。 ...
"表单删除修改增加插件.rar"是一个压缩包,包含了一个专用于处理表单操作的插件,旨在简化和优化用户对表单的修改、添加和删除功能。这个插件的案例非常适合开发者参考,以提高他们的开发效率和用户体验。 首先,...
这种模型要求在对一个文件修改前首先要锁定这个文件, 然后才能修改,这时,别人将无法对该文件进行修改, 当修改完后再释放锁,使其他人可以对该文件进行锁定,然后修改。 锁定文件的方法是:TortoiseSVN->Get ...
前言 SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable...为了达到公用的目的,有时候一个TableType可以在多个地方分别被引用到,这样的话,势必要先删除所有的引用了这个“用户自定义表类型
根目录是你的网站内容存放的地方,通常与你的域名直接关联。 3. **直接访问脚本**:上传完成后,在浏览器中输入URL `http://yourwebsite.com/resetpw.php`(将`yourwebsite.com`替换为你的实际网站地址)。访问此...