参考链接: Java命名约定 一命名规约 1. 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 【参考】各层命名规约: A) Service/DAO 层方法命名规约 1) 获取单个对象的方法用 get 做前缀。 2) 获取多个对象的方法用 list 做前缀。 B) 领域模型命名规约 1) 数据对象:xxxDO,xxx 即为数据表名。 2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。 说明:Long a = 2l; 写的是数字的 21,还是 Long 型的 2?【推荐】不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。 三 格式规约 1.
当服务器端所需要的不是基本类型时,Struts2 将会如何处理? 接口:Struts2 在遇到类型转换错误的时候将不会继续调用 Action 方法,Struts2 将会检查相关的 action 元素的声明是否包含着一个 name=input 的 result,如果有 Struts2 将把控制权转交给那个 result 元素,若没有 result 元素 struts2 将会抛出一个 404 异常,提示找不到 name = input 的 result ? 此时便需要我们自己去定义转换器,对对应的字段进行转换处理 自定义转换器实现步骤 实现 StrutsTypeConverter 类 配置类型转换器 基于字段的配置: 在字段所在的 Model(可能是 代码举例(将获取的字段转换为 Date 类型,以及转换回去) image.png 自定义转换器和默认的转换器出错的处理方式是一样的,这里就不再叙述。到此就是转换器的内容,还望指出问题所在,谢谢!
当服务器端所需要的不是基本类型时,Struts2 将会如何处理? 接口:Struts2 在遇到类型转换错误的时候将不会继续调用 Action 方法,Struts2 将会检查相关的 action 元素的声明是否包含着一个 name=input 的 result,如果有 Struts2 将把控制权转交给那个 result 元素,若没有 result 元素 struts2 将会抛出一个 404 异常,提示找不到 name = input 的 result ? 此时便需要我们自己去定义转换器,对对应的字段进行转换处理 自定义转换器实现步骤 实现 StrutsTypeConverter 类 配置类型转换器 基于字段的配置: 在字段所在的 Model(可能是 到此就是转换器的内容,还望指出问题所在,谢谢!
2. 【强制】所有的覆写方法,必须加 @Override 注解。 说明:getObject() 与 get0bject() 的问题。 2)【强制】RPC 方法的返回值和参数必须使用包装数据类型。 3)【推荐】所有的局部变量使用基本数据类型。 2)工具类不允许有 public 或 default 构造方法。 3)类非 static 成员变量并且与子类共享,必须是 protected。 2. ) 《1. 2022 Java开发手册(黄山版).pdf 《设计模式之禅 第1版》 《Java技术手册 第6版》 《编写高质量代码:改善Java程序的151个建议》 白话阿里巴巴Java开发手册(安全规约
2)路径:每一个 API 需对应一个路径,表示 API 具体的请求地址: a)代表一种资源,只能为名词,推荐使用复数,不能为动词,请求方法已经表达动作意义。 2. 【强制】前后端数据列表相关的接口返回,如果为空,则返回空数组[]或空集合{}。 说明:此条约定有利于数据层面上的协作更加高效,减少前端很多琐碎的 null 判断。 3. 2)401 Unauthorized:请求要求身份验证,常见对于需要登录而用户未登录的情况。 扩展说明,在 Long 取值范围内,任何 2 的指数次的整数都是绝对不会存在精度损失的,所以说精度损失是一个概率问题。 说明:nginx 默认限制是 1MB,tomcat 默认限制为 2MB,当确实有业务需要传较大内容时,可以调大服务器端的限制。 9.
Struts2之类型转换器 本人独立博客https://chenjiabing666.github.io 在我们接收表单的请求参数的时候其实默认的都是String类型,但是有时候我们需要其他的数据类型, 基于Struts2的类型转换器 上面的类型转换器都是基于OGNL的DefaultTypeConverter类实现的,基于该类实现转换时都要实现ConverterValue()方法,无论是从字符串转换为复合类型还是从复合类型转换为字符串都是在这个方法中实现 为了简化类型转换器的实现,Struts2提供了一个StrutsTypeConverter抽象类,这个抽象类是DefaultTypeConverter的子类。 实现DefaultTypeConverter方法,其中的变量还是上面的意思 下面实现上面的登录转换,如下: import java.util.Map; import org.apache.struts2. : import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.user.User; public
Kotlin 编码规约 ---- 编码规范 本页包含当前 Kotlin 语言的编码风格。 左右留空格:foo.bar().filter { it > 2 }.joinToString(), foo?. 函数格式化 如果函数签名不适合单行,请使用以下语法: fun longMethodName( argument: ArgumentType = defaultValue, argument2: : foo.bar().filter { it > 2 }.joinToString(), foo?. use the following syntax: fun longMethodName( argument: ArgumentType = defaultValue, argument2:
包括各类service & action. 1 long userID = ServiceUtils.getCurrentUserID(req); 2 if (! 界面中涉及到文件上传的部分, 需要对上传的文件做大小以及二进制头限制, 防止木马图片之类. 1 /** 2 * 校验二进制头,判断是否真的是图片。 )" 2 preparedStatement.setString( 1, "xx"); 3 preparedStatement.setString( 2, "xx"); 4 preparedStatement.setString 使用FR.html($xx, title)替代$xx.html() 1 // 错误 2 $("#popup_title").html(title); 3 // 正确 StableUtils.replaceScript4Xss(op)去除脚本 1 PrintWriter writer = WebUtils.createPrintWriter(res); 2
个字节短时标的电能量,每个电能量占12个字节 SOE 02 带3个字节短时标的单点遥信 04 带3个字节短时标的双点遥信 1E 带7个字节短时标的单点遥信 1F 带7个字节短时标的双点遥信 其他 2E 双点遥控 2F 双点遥调 64 召唤全数据 65 召唤全电度 67 时钟同步 七.传送原因(COT):2字节,低字节在前,高字节在后。 )00 00(接收序号)64(类型标示)01(可变结构限定词)06 00(传输原因)01 00(公共地址即RTU地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤 00(发送序号)02 00(接收序号)64(类型标示)01(可变结构限定词)0A 00(传输原因)01 00(公共地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤 无数据报文t2<t1时确认的超时 =10s 规定接收方在接收到I格式报文后,若经过t2时间未再收到新的I格式报文,必须向接收方发送S格式帧对已经接收到的I格式帧进行认可 t3:长期空闲t3>t1
2.【强制】所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数异常说明外,还必须指出该方法做什么事情,实现什么功能。 2)永久不用。前者如果没有备注信息,难以知晓注释动机。后者建议直接删掉即可,假如需要查阅历史代码,登录代码仓库即可。 10. 2)错误,不能工作(FIXME):(标记人,标记时间,[预计处理时间])在注释中用 FIXME 标记某代码是错误的,而且不能工作,需要及时纠正的情况。 参考 2022 Java开发手册(黄山版).pdf 白话阿里巴巴Java开发手册(安全规约) - 李艳鹏 - 简书(https://www.jianshu.com/p/9528c4ea1504)
org.springframework.core.convert.converter.Converter; import org.springframework.data.convert.CustomConversions; import org.springframework.data.r2dbc.convert.R2dbcCustomConversions ; import org.springframework.r2dbc.connection.R2dbcTransactionManager; import org.springframework.transaction.ReactiveTransactionManager * * @author VampireAchao<achao @ hutool.cn> * @since 2023/10/27 */ @Configuration public class R2dbcConfig { @Bean public R2dbcCustomConversions r2dbcCustomConversions(List<Converter<? >> converters) { return new R2dbcCustomConversions(CustomConversions.StoreConversions.NONE, converters
【实例简介】电网104规约解包java代码 项目是围绕电网规约101规约(DL/T634.5101-2002)和104规约(DL/T634.5104-2009),项目基于Java语言。 可以完成规约的内容解析工作和组装工作。可用于实际场景的把发送报文的生成等工作。 【文件目录】 101_104规约解析 ├── LICENSE ├── README.md ├── docs │ ├── 附件1:广东电网配网自动化101规约实施细则(试行).docx │ ├── 附件2:广东电网配网自动化104规约实施细则(试行).docx │ └── 附件3:规约解析细则.xlsx ├── iec.iml ├── iec_analysis │ ├── iec_analysis.iml asdu.getInformationObjects()); //返回S确认命令 int receiveSeqNum = apdu.getSendSeqNumber() 1; byte[] recNum = new byte[2]
调用规约 说简单也简单,说复杂也复杂,这里准备由浅入深,首先用一张图来直接描述 go 里面的函数调用规约究竟是怎么样的 左边是调用者栈情况,右边是被调用者栈情况 可以看到调用者栈里有本地的一些变量、当前调用函数的返回值 :7) MOVQ (TLS), CX 0x0009 00009 (main.go:7) CMPQ SP, 16(CX) 0x000d 00013 (main.go:7) PCDATA $0, $-2 main.go:7) FUNCDATA $1, gclocals·ce02aabaa73fa33b1b70f5cfd490303f(SB) 0x0021 00033 (main.go:7) FUNCDATA $2, ABIInternal, $96-0 0x0000 00000 (main.go:7) CMPQ SP, 16(R14) 0x0004 00004 (main.go:7) PCDATA $0, $-2 main.go:7) FUNCDATA $1, gclocals·ce02aabaa73fa33b1b70f5cfd490303f(SB) 0x0018 00024 (main.go:7) FUNCDATA $2,
【实例简介】 根据IEC104 2002规约开发,适用于读写西门子IEC104协议的电表和网关 【实例截图】 【核心代码】 IEC_emsClientService └── IEC_emsClientService communication │ │ │ ├── ActiveMQMessageListener$1.class │ │ │ ├── ActiveMQMessageListener$2. ClientErrorMessageTransfer.class │ │ │ ├── ClientMessageTransfer$1.class │ │ │ ├── ClientMessageTransfer$2. commons-logging.jar │ ├── commons-pool.jar │ ├── dom4j-1.6.1.jar │ ├── FuzzyEngine.jar │ ├── h2. CurtainFuzzyController.java │ ├── device │ │ └── Client_Device.java │ ├── io │ │ ├── CO2.
2. 规约Combiner 每一个 map 都可能会产生大量的本地输出,Combiner 的作用就是对 map 端的输出先做 一次合并,以减少在 map 和 reduce 节点之间的数据传输量,以提高网络IO
2、注册类型转换器 a、局部类型转换器:只对当前动作有效 在动作类所在的包中,建立一个名称为“动作类名-conversion.properties”的配置文件, 内容如下: 字段名=com.itheima.convertor.MyDateConvertor b、全局类型转换器: 在应用的构建路径中,建立一个名称为“xwork-conversion.properties”的配置文件, 内容如下: java.util.Date=com.itheima.convertor.MyDateConvertor
我们可以给WebDataBinder(数据绑定器)里面放自己的Converter(转换器) 自定义 Converter—对应配置类实现WebMvcConfigurer接口完成对springmvc默认配置的修改 Configuration//表明这是一个配置类 public class WebConfig implements WebMvcConfigurer { //自定义Stirng--->Pet的类型转换器
这些命名规约适用于CDS文件和其所在package的名称。 适用于命名CDS文档的规则与命名CDS文档所在的package的规则相同。 2:允许的字符内容 CDS对象和包名称可以包括以下字符: 小写或大写字母(aA-zZ)和下划线字符(_) 数字(0-9) 3:禁止字符 以下限制适用于CDS文档或软件包名称中可以使用的字符(及其位置 不能使用数字(0-9)作为CDS文档或软件包名称的第一个字符,例如2CDSobjectname.hdbdd(XS classic)或acme.com.1package.hdbcds(XS advanced
GitHub 平台上某个 issue 或多个 issue: Closes #120 Closes #123, #245, #992 参考资料 AngularJS 代码贡献指南 Karma 的 Git 日志规约
一、建表规约 1、表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是, 0 表示否) 。 2、表名、字段名必须使用小写字母或数字, 禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 3、表名不使用复数名词。 2) 不是 varchar 超长字段,更不能是 text 字段。 正例: 商品类目名称使用频率高, 字段长度短,名称基本一成不变, 可在相关联的表中冗余存储类目名称,避免关联查询 9、单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 二、索引规约 1、业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。 2、超过三个表禁止 join。