快速上手:24小时掌握企业级接口开发
1. 编程规范
【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束
【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式
【强制】类名使用UpperCamelCase风格,但DO/BO/DTO/VO/AO/PO等例外
【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase风格
【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长
【强制】抽象类命名使用 Abstract或 Base开头;异常类命名使用 Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾
【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式
【推荐】接口类中的方法和属性不要加任何修饰符号(public也不要加),保持代码的简洁性,并加上有效的 Javadoc注释。尽量不要在接口里定义变量,如果一定要定义变量,一定是与接口方法相关,并且是整个应用的基础常量
【参考】枚举类名建议带上 Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开
【强制】在long或者 Long赋值时,数值后使用大写的 L,小写容易跟数字1混淆
【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则
【强制】采用 4个空格缩进,禁止使用 tab字符
【强制】Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals
【强制】构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init方法中
【强制】Java类库中定义的可以通过预检查方式规避的 RuntimeException异常不应该通过catch的方式来处理,比如:NullPointerException,IndexOutOfBoundsException等等
【强制】有 try块放到了事务代码中,catch异常后,如果需要回滚事务,一定要注意手动回滚事务
【强制】不要在 finally块中使用 return; finally块中的 return返回后方法结束执行,不会再执行 try块中的 return语句
【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架SLF4J中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一
【强制】对 trace/debug/info级别的日志输出,必须使用条件输出形式或者使用占位符的方式
正解: logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);
【强制】SimpleDateFormat不能多线程使用
2. 搭建Spring Boot项目
2.3.1 父项目
2.3.2 子项目
2.4 Spring Boot 相关依赖
2.5.1 激活指定环境配置
1. 对应潜龙发布系统,添加配置参数-Dspring.profiles.active=dev
2. IDEA激活指定环境(RUN -> Edit Configurations)
2.5.2 其他配置文件
2.5.2.1 Application Config
1. 配置文件类
*** Service会加载该配置文件,若不配置会报错
2.5.2.2 logback.xml(日志配置文件)
日志目录规范
/data/weblog/java/{项目名} java stdout
/data/weblog/tomcat/{项目名} java stdout
/data/weblog/business/{项目名} 业务日志
以上目录定时清理,单个日志文件大小不能超过200MB
常用命令
/etc/init.d/java {项目名} (start/stop/restart)
/etc/init.d/tomcat {项目名} (start/stop/restart)
/etc/init.d/nginx (start/stop/configtest/reload/force-reload)
2.6. 自定义Mapper(Mybatis)
2.6.1 创建配置文件
2.6.2 加载Mapper路径
2.6.3 编写DAO接口
2.6.4 编写Mapper文件
2.7 注解
2.7.1 Lombok
2.7.2 RestController
1. @RequestMapping
2. @ PathVariable
3. @ RequestBody (同上,JSON)
4. @ RequestParam : 参数
2.7.3 其他注解
1. @Slf4j: 日志
2. @Service(“****”):启动服务
3. @Autowired:自动加载
4. @Scheduled:定时器
5. @PostConstruct: 与Service配合使用,启动并运行
6. @Transactional: Spring-Mybatis事务
7. @Mapper : 定义Mybatis接口
涤生大数据往期精彩推荐
8.SQL之优化篇:一文搞懂如何优化线上任务性能,增效降本!
10.基于FlinkSQL +Hbase在O2O场景营销域实时数仓的实践
12.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(一)
13.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(二)
14.5分钟了解实时车联网,车联网(IoV)OLAP 解决方案是怎样的?
15.企业级Apache Kafka集群策略:Kakfa最佳实践总结
20.大数据实战:基于Flink+ODPS进行最近N天实时标签构建
25.玩转大厂金融风控体系建设
26.实际开发中:如何有效运用Spark Catalyst的执行流程
29.深入分析大数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响