从零开始写Java项目

偶然机会,开始用Java写项目。以前一直奔波于JavaScript的体系中,从Jquery、Angualr、Node、Vue,百花争艳。 算法

事件插件

八月底入职开始就着手SpringCloud一系列学习,最终调研集成Mybatis-plus。开始编写的功能是个事件管理的公共插件。数据库

  • 事件注册
  • 事件发布,并支持各个业务模块发布不一样实体类信息。支持异步、同步发布。
  • 事件订阅,订阅者能够自定义订阅某种或者某些事件

期间用到了反射、泛型、线程、线程安全队列等知识,恶补Java基础语法、JVM运行原理勉强写完事件插件并测试实践于项目中。安全

反射

Class c = Class.forName(clazz);
BaseApplicationEvent baseApplicationEvent = (BaseApplicationEvent) applicationContext.getBean(c)
baseApplicationEvent.callbackEvent(eventModel)并发

泛型

public class EventModel<T> implements Serializableapp

线程

static class AsyncEvent extends Thread implements Runnable异步

线程安全队列

public static List<EventModel> eventQueue = new Vector<EventModel>()学习

存储卷模块

第一个开发的业务模块就是这个存储卷模块,业务很少赘言。从driver层开始往上写,构建Client管理器,编写service层逻辑,输出接口。期间涉及到:测试

  • 事务保证数据一致性
  • 定义系统返回码
  • 封装controller返回体
  • 封装校验注解
  • 利用Spring切面拦截处理
  • 封装系统异常
  • 记录日志,日记追踪轨迹,聚合日志
  • 熟悉Mybatis-plus快捷语法
  • 加并发锁机制,避免数据库数据混乱
  • 经过自研任务管理器发起单次异步任务、周期任务
  • 经过自研调度算法调度建立

对象存储

对象存储模块涉及差别主要集中在业务,也涉及了存储卷几乎所有知识点。期间主要涉及插件

  • 调取第三方SDK Client,封装第三方Client。

后记

写了两个月发现难点主要集中在蜿蜒曲折的业务流程上,直到如今磕磕绊绊建立出一个裸机。建立一个自带安装过软件的虚拟机,还才起步,愿Java仕途坦荡。 线程

相关文章
相关标签/搜索