-
新手开发中的疑问5
我是一个刚刚毕业的本科生,毕业之前来北京一家公司实习,毕业之后就留在公司继续深造学习把,在实习的时候有幸开始了开发的工作,说明下我是搞Java web应用的,现在项目的开发已经接近尾声了,从这个项目中我也学习到了很多的开发经验和知识,但是在最后我还是有一些不解的东西请教,希望有经验的人能够帮助我解答这些困惑,让一个小程序员能够在思想上有些进步。
我的第一个疑惑就是如何控制Java spring 对于类的注入问题,简单的说就是在那一层注入,我现在开发的这个项目给我的感觉就是非常的乱,在Action里面注入了很多的Service,同时在service中又注入了很多的DAO,打开一个类文件满眼都是注入的标注@xxx,给我的感觉很不好,感觉十分的乱,而且这么错中复杂的注入方式对于以后的维护以及项目的管理上会不会带来一些不好的影响?(会么?求分析,到底应该怎么去注入)。
第二个疑惑就是逻辑应该写到哪的问题,这样说可能大多数人都会说当然是写到service中了,而且service还管理着对事物的控制功能。可是我就遇到过这种情况一条语句中同时对两个表进行更改,需要加上事物,但是由于我们的项目需要将数据同步到别的数据库中就要将标识位重新置位,让同步服务知道这个数据发生了变化,而且这个同步标志的标志位是动态的,简单的说就是根据某个表中某条数据生成或删除的,没法在更改这条数据的同时去更改它,或者说是可以但是由于某种原因必须要通过另一个操作对它进行更改,于是这四条执行的语句就发生了冲突,对于hibernate叫做事务性死锁吧,迫不得已将事物干掉了,我想问有没有什么更好的解决办法呢?
第三个就是Action,service,dao这三个类中究竟该写些什么内容?给我的感觉是Action就是数据的转发者,从前台接受数据,将数据处理封装发给service,service写逻辑,再调用dao的执行语句方法得到数据,整理处理返回给Action。这看起来是很简单的一个问题,可是如果对于一次请求获取多条数据呢?这个似乎就有点不好解释了,因为一个方法返回的只能是一个对象,集合或是类,即使返回的是集合集合中的元素大多数也应该都是一种类型的,而且总不能一次返回一个Map,Map中放着各种类型的数据吧,总感觉这样怪怪的。在写这条问题时突然想到这中情况都发生在对数据的查询方面,那是不是应该这样:Action将数据整理、分类,将调用不同的Service的方法,将数据一一的查询出来,再返回个页面?如果是这样的话又有一个问题我现在有数据A,想要得到数据C,但是通过A想要的到数据C必须先通过A得到B,再通过B得到C,这种情况的话得B的逻辑应该写到哪呢?是在Action中通过A的到B的方法,再调用service中通过B得到C的方法还是应该将数据传个service,然后service调用Dao得到B,再在方法体中调用Dao得到C,然后返回给Action?我感觉应该是第一种,但是也有可能需要看情况吧,谁能举个例子说下。
最后就是想要规划一下自己的职业生涯,毕竟自己还年轻,不想糊里糊涂的混下去,同时在工作中如果遇到不顺心的事,比如明明很努力了但上级对自己的工作不认可,付出的与得到的不成正比,还有就是如何与测试人员协调等等吧。 希望大家能给一些建议,在这里感谢大家了
2012年8月29日 11:34
3个答案 按时间排序 按投票排序
-
同样是新手,我今年刚大四,目前实习。。。我在看公司项目的源码时遇到了很多和楼主类似的问题,其中很多是对于各个分层功能划分和协调的理解,为什么要这样分?为什么这段逻辑要放这里?@XXX这个注解是干什么的(除了最基本的IOC注解还有很多关于事务关于权限关于缓存的注解)?总之问题很细,很难深入去抠。。。。所以我认为还是在项目进展过程中加强对于框架细节的学习,随着经验和代码量的积累,很多问题应该就没有了。。
2012年8月30日 12:46
-
对于项目结构可以参考我的 积分商城 的示例,从分模块到分包,到通用化组件都有涉及到,不会的可以到博客下边提问。
http://jinnianshilongnian.iteye.com/blog/1452463
这个示例有两个版本,一个xml的 一个注解的
xml方式的好处在于配置的集中化,只需要看配置文件就知道组件和组件之间的关系;
注解的好处就是开发效率提高了,但是配置是分散的,查找问题和维护性上不如xml。
所以两者各有利弊,权衡考虑
2012年8月29日 11:55
相关推荐
这些案例可能涉及游戏开发、社交应用、地图导航、推送通知等常见应用场景,让开发者了解如何将所学应用到真实世界的问题中。 总的来说,这四本书籍构成了一套全面的Android开发学习路径,不仅教授基础知识,还强调...
asp.net开发新手常见问题集锦 入门 编程
《NC65开发详解:新手入门到精通指南》 NC65是一款先进的企业级业务管理软件,其开发文档是新手开发者的重要参考资料。本篇将详细阐述NC65的开发环境搭建、单据开发、扩展开发、流程开发、报表开发以及数据字典的...
【Windows Mobile新手开发入门】 Windows Mobile开发是针对微软在移动设备上推出的嵌入式操作系统进行应用程序开发的过程。对于初学者,这是一个逐步学习和掌握技能的领域。本文将介绍Windows Mobile开发的基本环境...
《Android新手开发教程》是一本面向初学者的指南,旨在帮助那些希望踏入Android应用开发领域的学习者快速掌握基础知识。这份PDF教程《Android开发艺术探索》虽然篇幅可能不长,但内容精炼,包含了Android开发的核心...
前端开发问题总结,适用于新手前端,有助于成长为大佬
本指南将帮助新手快速入门,通过Java语言搭建开发和测试环境,使用金碟云提供的WEB API k3cloud-webapi-sdk.jar进行高效集成。 首先,我们需要了解金碟云的基本概念。金碟云是金碟公司推出的一款基于云计算的企业...
在这个“AS3新手框架开发研究”中,我们将探讨一系列关键知识点,帮助新手在AS3的海洋中找到方向。 1. **AS3基础知识** - **数据类型**:AS3有两种主要的数据类型——值类型(如int、uint、Number、Boolean、...
本文主要针对新手提出的一些常见问题进行了详尽的解答。 1. **游戏开发语言和编译器**:游戏开发可以使用多种编程语言,如C++、C#、Python、Java等。C++是常用的语言,因为它提供了对系统资源的直接控制,适合性能...
解决这些问题的过程将帮助你更好地掌握Swift的编程技巧和macOS应用开发的最佳实践。 总的来说,Swift新手通过学习如何开发高可定制的TouchBar,不仅可以提升自己的编程技能,也能创造出更具个性化的Mac应用,满足...
HTML5移动开发中,JavaScript扮演着重要角色。它通过Web APIs如Geolocation获取用户位置信息,WebSocket实现双向实时通信,Web Workers进行后台处理,以及Web Storage和IndexedDB提供本地数据存储。这些API扩展了...
在"新手学JAVAWEB开发源代码ch02"中,你可能会看到如何在实际项目中整合这些技术的例子,例如设置Maven或Gradle构建工具,编写JSP页面,创建Servlet,以及配置和使用SSH框架。通过研究这些源代码,你可以了解到实际...
5. **安全性和稳定性**:讨论驱动开发中的安全性问题,如何避免蓝屏错误(Blue Screen of Death, BSOD),以及确保驱动程序的稳定运行。 6. **驱动签名和安装**:说明如何对驱动进行签名,以便在受限制的操作系统...
1年的工作经验 各位编码的兄弟 欢迎继承 避免你们在工作中碰到这样的问题,能快速的解决,此文档针对新手有用,编码超过2年的可以不用下载。 对于新人在工作中给予鼓励与支持。记得要保留下你们处理问题的方法,总结...
总的来说,这个压缩包中的资料将为外贸新手提供一套全面的客户开发策略,从市场研究到客户关系维护,涵盖外贸业务的各个阶段。通过学习和实践这些方法,新手可以逐步建立起自己的客户网络,推动外贸业务的发展。
在开始Web开发的学习过程中,选择一本适合新手的书籍至关重要,因为它应该以易于理解的方式介绍概念,并提供足够的实践机会。像《Programming Windows》这样的书籍,虽然专注于Windows编程,但其深入的解释和实例...
如果你遇到问题,可以在这里寻求帮助。 10. **学习路径** 对于新手,建议从B4A的官方教程开始,逐步了解基础概念和语法。然后,尝试编写一些简单的应用,如计算器、计时器等,实践是最好的老师。随着经验的积累,...
4. **游戏开发流程**:在CryENGINE 3中,开发通常包括场景搭建、角色建模、脚本编写、动画制作、物理模拟、光照设置、音效集成和性能优化等多个环节。这些都需要开发者具备一定的编程和艺术技能。 5. **CryScript**...