jfinal项目重构为springboot项目
微服务改造过程感受
- 代码分层的很重要
在原本的单体架构中,想要单独拆分一个模块出来单独的部署与运行,但是原本的代码层级混乱,给代码拆分和迁移增加了很多工作量。
例如,原本的单体架构大致可分为Controller/Service/Module+基本的配置常量。(在sprintboot中Module更多的阐述为entity)
理想情况下,将某个模块涉及到的Controller/Service+所有的数据entity拷贝出来,按照新框架的格式对相应的接口/拦截器等等进行修改即可。
但是,由于代码层次不明显,entity中存在调用各个service的方法,导致如果导入所有entity,则需要导入很多额外的包。
maven添加本地jar包
- pom.xml添加一个自定义的本地仓库
1 | ... |
修改jar包路径到本地仓库目录
${repo-dir}/groupid/artifactid/version/artifactid-version.jarpom.xml中添加依赖
1 | <dependency> |
微服务改造过程记录
jfinal项目改造为微服务过程记录,主要包括:
Eclipse SpringBoot项目创建流程
SpringBoot
- 热部署配置方法
- 如何使用ActiveRecordPlugin连接数据库(Db.find…)
- 请求参数获取与Json数据返回
- 正式/测试环境区分
- maven导入本地包
- 拦截器
- 接口中文到前端乱码的问题
- 事件监听器
- 如何格式化输出,包括统一的异常处理
- 安全处理
- 微服务:
- 服务注册与发现:Eureka Server/Eureka Discovery
- 自动化部署:maven/jekins //TODO
- 文档生成:Swagger //TODO
- 日志与链路追踪 sleuth + zipkin
持续交付-发布可靠软件的系统方法 读书笔记
本书讲述如何实现更快、更可靠、低成本的自动化软件交付,描述了如何通过增加反馈,并改进开发人员、测试人员、运维人员和项目经理之间的协作来达到这个目标。本书由三部分组成。第一部分阐述了持续交付背后的一些原则,以及支持这些原则的实践。第二部分是本书的核心,全面讲述了部署流水线。第三部分围绕部署流水线的投入阐述讨论了更多细节,包括增量开发技术、高级版本控制模式,以及基础设施、环境和数据的管理和组织治理。
微服务重构的一些问题
微服务重构前猜测重构过程中可能遇到的一些问题。
设计系统的组织,其产生的设计和架构等价于组织间的沟通结构。- 康威定理
软件架构的最基本规律:架构是通过解决当前的需求和痛点而演进的,无法根据没有出现的问题和痛点进行设计。
技术问题和管理问题并不是两个问题,而是同一个问题的两个侧面。
mysql-主动退出存储过程:LEAVE
1 | create procedure myproc() |
如何阅读一本书(How To Read A Book)中文版 读书笔记
本书1940年初版,1970年大幅度增补改写新版。
作者信息:
- 莫提默·J.艾德勒(1902-2001),主编《西方世界的经典》,并担任 1974 年第十五版《大英百科全书》的编辑
- 查尔斯·范多伦(1926-)美国哥伦比亚大学教授,襄助艾德勒编辑《大英百科全书》,将本书 1940 年初版内容大幅度增补改写。
四种不同层次的阅读——基础阅读、检视阅读、分析阅读、主题阅读