龚海生的简历
教育背景
龙岩学院 物理与机电工程学院 电子信息工程 2017年毕业
工作经验
2020.10 ~ 2021.11: 深圳市立创电子商务有限公司
- Java后端开发
- Vue前端开发
- 微信小程序前后端开发
2017.6 ~ 2020.8:厦门海西医药交易中心
- 主要负责Java后端开发
- 在旧架构中也包揽前端工作
专业技能
- 熟练掌握使用Java与Kotlin进行Web开发
- 熟悉JVM虚拟机(Java内存模型,垃圾回收算法,垃圾收集器等)
- 熟练使用Spring,SpringMVC,Mybatis,Springboot等开源框架并了解内部原理
- 熟练使用SpringCloud常用组件,包含初代Netflix系列与Alibaba系列SpringCloud
- 熟练使用MySql,Oracle关系型数据库,能够对SQL语句进行一定调优。对SQLServer,PostgreSQL也有一定的SQL编写经验。
- 掌握Zookeeper,Dubbo的使用,对消息中间件RocketMq,Kafka有一定了解,对Redis缓存原理有一定了解。
- 有个人服务器,对Linux生产环境部署已经线上问题排查有一定了解和经验。
- 有过单体架构升级,数据库代码迁移,公共组件开发等相关经验,有较多的造轮子经验,诸如:Druid 访问器,EasyExcel,Mybatis-Plus代码生成器等。
- 掌握原生Js,JQuery和Vue前端开发。均有实战造轮子经验。
项目经验
立创芯管家
项目基于SpringBoot,涉及技术:SpringCloud,Feign,roketMq,Redis,Swagger,Mybatis,Mysql,Vue
2020.10 ~ 2021.11:前后端开发
- doc,excel等文件导出方案调整,将原有基于fremarker导出xml文件的方案修改为使用EasyExcel实现,优化用户体验
- 基于druid访问器编写Mybatis插件,实现全局逻辑删除
- 前后端灰度发布方案研究发布
- 部分系统数据库迁移,SqlServer迁移Mysql(代码调整)
- 父子仓,包装单位调整,商品删除,库位管理等全局业务方案制定和开发,其余小模块业务开发调整。
省药械集中采购平台
新系统基于SpringBoot,涉及技术:SpringCloud,Nacos,Feign,Kafka,Redis,Swagger,Shiro,Mybatis-Plus,XXL-Job,Mysql,Jsp,Thymeleaf
旧系统基于SpringMVC,涉及技术:Shiro,Mybatis,Redis,Quartz,Oracle,Jsp,Thymeleaf
2020/07 ~ 2020/08: 数据库由Oracle迁至Mysql
修改系统依赖,修改旧分页功能,使用Idea正则重构功能完成大部分函数,语法全局替换。
引入mybatis-plus并重写代码生成器,增加根据注释生成枚举类的功能,并研究字段枚举类型的可行性方案。
参与部分业务及存储过程迁移,包含merge语法替换,游标语法替换,动态sql等。
2020/06 ~ 2020/06: 系统多租户改造
由于各省市平台较多,数据量并不大,使用多租户方式合并数据解决数据库资源浪费的问题。
参考mybatis-plus多租户插件实现多租户改造,无侵入式统一修改sql。
2020/05 ~ 2020/06: 接入单点登录
由于业务变更,需要统一登录入口,用户信息,需要将原系统改为使用token控制登录。
系统维持shiro登录,编写拦截器,校验token,同步用户企业信息并进行登录操作,协同单点登录方迁移数据。
整理系统Readme文档。
2020/03 ~ 2020/05: 系统架构改造
将基于SpringMVC的项目改造为SpringBoot项目,微服务化并接入Nacos配置中心。
依赖变更,升级,将xml配置替换为Java Config配置,接入Kafka,Feign,Swagger,替换分页定时任务实现。
解决Jsp页面公共头无法引入的问题。
2019/01 ~ 2019/04: 文件迁移
背景:项目本身时间跨度较大,并非同一批开发人员研发,并且现有功能涉及模块众多,数据量较大,各功能数据库存储差异较大(有些文件还在Clob字段中需要解析)。
编写工具,分模块将文件数据由阿里云迁至公司文件服务器,使用JDK8 CompeteFuture多线程分页执行,提高效率。(>_<之后又迁回去了,还是我)
统一上传接口,修改Js上传组件并提供适应本系统的默认实现,便于各业务模块功能统一修改。
2017/06 ~ 2018/05: 前后端不分离阶段开发
初期权限设计。
利用Aop实现系统业务日志统一存储。
熟悉JDK8 Api并修改BaseController,BaseService等相关基础类暴露函数式接口参数,减少冗余代码。
在开发过程中发现原有的开发流程中表格服务和上传服务代码过于冗余。研究Datatables,WebUploader并封装适应本系统的前端直传组件,和表单组件,提供相对完善的文档。
为了便于维护引入Vue.js使前端代码模板化(而不是使用字符串拼接出来),以后台配置方式维护前端字段渲染方式,校验方式,必填关系,并由于字段存在上传按钮,提供了基于Vue.js的上传组件。
国家药械联合采购平台
基于SpringBoot,涉及技术:SpringCloud,Nacos,Feign,Kafka,Redis,Swagger,Shiro,Mybatis-Plus,XXL-Job,Mysql
2019/07 ~ 2019/09: 公共组件开发
提供分布式锁starter包。
提供用户上下文注入解决方案starter包。
解决SpringBoot集合校验问题。
提供数仓参数拼接工具。
提供缓存工具类和支持SpringEL表达式的缓存注解。
封装基于Shiro的starter包。
提供Dozer工具类。
提供统一文件上传接口。
2.0系统开发
基于SpringBoot,涉及技术:SpringCloud,Dubbo,Mybatis,Mysql,Redis,Quartz
2019/01 ~ 2019/01: 业务数据初始化
由于数据处理量相对较大,响应较慢,采用异步执行,前端轮询的方式等待响应。
使用多线程优化执行效率。
出行项目
基于SpringMVC,涉及技术:Dubbo,Memcached,Mybatis,JWT,微信登录,微信支付
单点登录服务开发
编写统一登录服务,存储用户信息,调取微信公众号登录存储OpenId,UnionId,并利用JWT生成统一Token供其他服务鉴权。
编写拦截器在维持子业务不受影响的情况下校验token实现登录。
开源项目
Auth-System
2020.3 ~ 至今,一个简单的权限系统,starter练手项目
- 基于SpringBoot,Shiro,Jwt,Mysql,Mybatis-plus,Amaze-ui
- SpringBoot starter练手项目
- 移植了开发至今认为比较好的一些项目实践
- 源码:https://github.com/gonghs/auth-system
与我联系
目前状态为:已离职,月内到岗。