密级:内部公开JAVA编程规范编号:版本号:受控状态:作者:分发号:密级:内部公开文档修改历史记录文档修改记录日期版本号更改人更改内容文档审核记录日期版本号审核人审核意见密级:内部公开目录1.Java编程规范.................................................................................................................................................41.1排版..............................................................................................................................................................41.2注释..............................................................................................................................................................51.3命名..............................................................................................................................................................91.4编码............................................................................................................................................................101.5性能与可靠性............................................................................................................................................152.基于Struts和EJB编程规约..............................................................................................................................152.1总体原则....................................................................................................................................................152.1.1每个子系统纵向划分为五层),分别是:界面层、控制层、业务层、数据层...........................152.1.2界面层负责页面的展现,使用ExtJS....................................................................................................152.1.3控制层负责请求的转发,使用StrutsAction.....................................................................................152.1.5业务层负责业务的实现,使用EJB中的SessionBean.......................................................................152.1.6数据层负责数据的存取,使用EJB中的Hibernate............................................................................152.1.7系统应严格遵循纵向分层的原则,在不同的层次中实现不同的功能...........................................152.2Struts编程规约............................................................................................................................................162.2.1Struts配置文件定义..............................................................................................................................162.2.2struts2中减少action数量(通配符使用)...........................................................................................162.2.3事件定义..............................................................................................................................................162.2.4参数信息获取......................................................................................................................................172.2.5命名规约..............................................................................................................................................182.3EJB编程规约...............................................................................................................................................192.3.1数据库连接..........................................................................................................................................192.3.3命名规约..............................................................................................................................................19密级:内部公开4/191.Java编程规范1.1排版规则1分界符(如大括号‘{’和‘}’)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序或者static、,synchronized等语句块中都要采用如上的缩进方式。示例:if(ab){doStart();}规则2较长的语句、表达式或参数(80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。示例:if(logger.isDebugEnabled()){logger.debug(Sessiondestroyed,call-id+event.getSession().getCallId());}规则3不允许把多个短语句写在一行中,即一行只写一条语句说明:阅读代码更加清晰示例:如下例子不符合规范。Objecto=newObject();Objectb=null;规则4if,for,do,while,case,switch,default等语句自占一行,且if,for,do,while,switch等语句的执行语句无论多少都要加括号{},case的执行语句中如果定义变量必须加括号{}。说明:阅读代码更加清晰,减少错误产生示例:if(ab){doStart();}casex:{inti=9;}规则5相对独立的程序块之间、变量说明之后必须加空行。说明:阅读代码更加清晰密级:内部公开5/19示例:if(ab){doStart();}//此处是空行return;规则6在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。说明:阅读代码更加清晰示例:if(a==b){objectA.doStart();}a*=2;规则7类属性和类方法不要交叉放置,不同存取范围的属性或者方法也尽量不要交叉放置。格式:类定义{类的公有属性定义类的保护属性定义类的私有属性定义类的公有方法定义类的保护方法定义类的私有方法定义}规则8修饰词按照指定顺序书写:[访问权限][static][final]。示例:publicstaticfinalStringstr=“abc”;1.2注释规则1类和接口的注释放在class或者interface关键字之前,import关键字之后。注释主要是一句话功能简述与功能详细描述。类注释使用“/***/”注释方式密级:内部公开6/19说明:方便JavaDoc收集,没有import可放在package之后。注释可根据需要列出:作者、内容、功能、与其它类的关系等。功能详细描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,@since表示从那个版本开始就有这个类或者接口,@deprecated表示不建议使用该类或者接口。/***〈一句话功能简述〉*〈功能详细描述〉*@author[作者](必须)*@see[相关类/方法](可选)*@since[产品/模块版本](必须)*@deprecated(可选)*/示例:packagecom.power.iin.logwebsmap.comm;importjava.util.*;/***LogManager类集中控制对日志读写的操作。*全部为静态变量和静态方法,对外提供统一接口。分配对应日志类型的读写器,*读取或写入符合条件的日志纪录。*@author张三,李四,王五*@seeLogIteraotor*@seeBasicLog*@sinceCommonLog1.0*/publicclassLogManager规则2类属性(成员变量)、公有和保护方法注释:写在类属性、公有和保护方法上面,注释方式为“/***/”.示例:/***注释内容*/privateStringlogType;/***注释内容*/publicvoidwrite()规则3公有和保