java j2ee技术实施参考指南


java j2ee技术实施参考指南 本技术实施指南由方梁撰写维护,如有不正确、不合理的地方,请各位指正,也敬请各位补充完善。 本技术实施指南的目的是规范各项目的Java,J2EE技术标准,合作公司的应用产品或现场实施应遵循本技术实施指南。 版本:20100721 Java 开发和生产部署的java应采用当时最新发布Java版本及补丁包。当前(2011年7月)java最新版本为1.6+,切勿因为产品本身的技术问题而要求使用 较低版本的Java。 优先使用操作系统厂商或产品本身自带的Java,如在solaris、linux、windows上采用oracle(sun)的Java;AIX采用IBM的Java;HP-UNIX采用HP 的Java;Netweaver采用SAP的Java。 生产部署的java参数需要有经验人员调优确认。 64位的操作系统使用64位的Java。 注:java和jvm含义一致。 oracle Java:http://www.oracle.com/technetwork/java/javase/overview/index.html HP Java:http://h18012.www1.hp.com/java/ IBM Java:http://www.ibm.com/developerworks/java/jdk/index.html SAP java:http://help.sap.com/saphelp_nwpi71/helpdata/en/47/dc90b4ef17452289f9128b8c2bbd77/frameset.htm 应用服务器 在满足性能和稳定性的前提下,优先使用开源应用服务器(tomcat),在行内已购买licence的许可范围内使用商用应用服务器应当前最新版本,切 勿因为应用或产品本身的技术问题而要求使用较低版本的应用服务器。(一个项目大体上只会用到一个商用应用服务器20%左右的功能,一般地,开 源应用服务器已提供了这20%的功能)。 服务于外部客户的关键系统可考虑选择商用应用服务器的最新版本,如Oracle的weblogic,SAP的Netweaver,IBM的websphere。 服务于行内用户的系统优先使用开源应用服务器tomcat,如无特别必要,不推荐使用jboss或其他开源应用服务器。 Tomcat: http://tomcat.apache.org/ Oracle weblogic:http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html SAP Netweaver: http://www.sap.com/platform/netweaver/index.epx IBM Websphere: http://www.ibm.com/developerworks/downloads/ws/was/ weblogic10.3 OS support:http://confluence.cmbc.com.cn:28080/pages/worddav/preview.action?fileName=oracle-wls-certification-10gr 3-matr-129284.xls&pageId=17927908 开发工具 使用开源Eclipse最新版本(www.eclipse.org)。 不准使用任何付费或盗版的开发工具,如MyEclipse。 java/j2ee技术或框架 追求简洁有效可靠。 在不影响实现功能的条件下,应使用最新、标准的java/j2ee技术,勿选择与某特定应用服务器或产品绑定而不能迁移至其他应用服务器上的应用技 术,如webdynpro。 在能提供类似功能和性能前提下,推荐和优先使用开放源码的技术或框架。应选择当前应用最广泛、成熟、我行已有实际案例验证的应用技术或框 架,如果引入我行未使用过的技术框架需要经过原型验证评审后才能采用。 遵守奥卡姆剃刀设计原则------如无必要,勿增实体(切勿浪费较多东西去做用较少的东西同样可以做好的事情),勿浪费重复、勿滥用第三方开 源框架或滥用第三方框架提供的“通用”功能,如一个项目同时采用struts、spring、hibernate,事实上spring一个框架已足够完成struts和hibe rnate提供的功能,许多“通用”功能可以用少量代码直接实现。 勿过分夸大技术框架的作用,勿过分追求通过配置来实现功能,直接编写代码或许更简单有效。 数据访问推荐使用自开发、自编写SQL的Dao或ibatis,不准使用任何其他ORM工具,如hibernate、JPA、EntityBean。(无法进行sql调优) 应用层推荐使用spring,建议仅使用spring的IoC基础功能,不推荐使用spring自带的AOP声明式的事务,事务尽量用代码来实现。如无必要勿使用J 2EE的分布式事务(分布式事务)。不推荐使用EJB。 不推荐在频繁执行的业务交易中使用动态修改字节码技术、反射(reflect)技术和脚本动态编译技术(如cglib,asm)等。 UI推荐使用GWT、JSP、Flex、JavaFX、Silverlight。 如果部署的应用服务器提供webservice引擎,应用程序的Webservice服务提供方和Webservices消费方使用应用服务器的webservice引擎,采用 webservices的Annotation发布和访问webservices;否则,一律使用axis2或cxf最新版本发布和访问webservices。 注意: 大多开放源码框架和技术包括Java存在bug,勿做出质量高的梦幻假设。 发现开放源码框架和技术的bug,勿直接修改,向开放源码项目的组织提出bug及修复代码,保证开放源码技术框架的后续升级。 ibatis: ; http://ibatis.apache.org/  http://www.mybatis.org/ spring:http://www.springsource.org/download gwt:http://code.google.com/webtoolkit/ flex:http://www.adobe.com/products/flex/ javaFX:http://javafx.com/ silverlight:http://www.silverlight.net/ axis2: http://axis.apache.org/axis2/java/core/ cxf: http://cxf.apache.org/ socket服务器: http://mina.apache.org/ 问题解决工具箱 分析问题原因之前勿做出任何先设断定,切勿相信任何不能解决此问题人员的任何原因分析,到现场实地收集和分析。 先google,再查看源代码,源代码的逻辑分析是解决问题的终极方法。 收集项目所有class文件和jar文件,在eclipse的Java项目中分析源代码。 使用visualvm profile程序观察程序的运行情况。 使用MAT分析堆空间及了解运行时刻的数据及状态。 使用jd-eclipse插件反编译class代码。 visualvm:http://visualvm.java.net/ mat: http://www.eclipse.org/mat/ jd-eclipse: http://java.decompiler.free.fr/?q=jdeclipse 开发过程 建议采用Agile scrum 开发模式,2~4周任务迭代安排,连续集成,小版本测试发布验证反馈。 1~2年工作经验以下人员做出的任何设计方案都需要有经验人员评审。 1年工作经验的人员坚持一周请有经验人员评审一次代码,用重构(refactor)工具优化代码,用findbugs工具扫描代码。 scrum: ; http://www.scrumcn.com/index.php  http://www.mountaingoatsoftware.com/topics/scrum findbugs:http://findbugs.sourceforge.net/ 目前我们能提供的项目管理基础工具,以下工具可以集成在一起,可实现从需求(功能点)到代码到bug到修复的过程跟踪。 需求(user story):confluence 任务及bug跟踪: jira 构建工具: bamboo, clover(java,单元测试代码覆盖率),findbugs 代码评审: crubile,fisheye 代码版本控制: SVN; eclipse插件: mylar,Jira Connector,svn 源代码版本控制 使用SVN作为源代码控制管理工具。我行已建立svn服务器,各项目不准建立“私有”的svn服务器,必须使用行内提供的svn服务器。 svn eclipse插件:http://www.eclipse.org/subversive/downloads.php
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

chaochao361

贡献于2014-03-26

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf