文章目录

  • 一、结果展示
  • 二、我学到的
  • 1、Maven构建多模块
  • 2、lombok的使用
  • 3、maven没有gradle方便
  • 三、对作者的建议
  • 3.1 有误之处
  • 3.2 期待改进之处


读者盆友好,这段时间集中精力研究下Redis,把实战、学习过程记录下。

内容来自:

《分布式中间件技术实战(Java版)》 钟林森 编著
这本书果然很“实战”,非常容易上手。

看了第一篇后立马实战了下,除了安装lombok插件花费了点时间,基本2-3小时搞定吧。

作者书上也分享了git源码,笔者实战的源码也分享出来。

https://github.com/cmhhcm/redis_practise.git

一、结果展示

postgres 分布式中间件 分布式中间件实战_postgres 分布式中间件


代码结构:

postgres 分布式中间件 分布式中间件实战_多模块_02

二、我学到的

1、Maven构建多模块

书中说得很清楚了,自己实际走一遍就知道了。
实际开发中,用Gradle构建多模块后的效果也是类似的。一般middleware在实际项目中是按照DDD模式抽象出一个领域模块,比如bff,然后下面试api-client、biz之类的包。

重点说一下层级依赖。就是说在每个模块的pom.xml中配置依赖,server依赖了model,model依赖了api,因为lombok在api中,所以只要server依赖了model之后,就可以使用lombok相关的注解了。为什么呢?因为依赖自动加上了,怎么知道依赖确实加上了呢?请看下面:

postgres 分布式中间件 分布式中间件实战_postgres 分布式中间件_03


仔细观察会发现model依赖的自然和server不一样,这就是pom.xml中配置dependency后的效果。

2、lombok的使用

公众号中看到过介绍lombok的,这回是第一次用。
要想生效,需要在Idea中安装lombok插件,重启后看一下Structure就知道是否真的生效了。

postgres 分布式中间件 分布式中间件实战_maven_04


看起来lombok作用蛮大,网上目前针对他的声音声讨大于赞美。大家可以搜一搜,我觉得除了减少代码之外,这几点比较致命:

1、还要IDE安装插件才能生效,烦人;

2、set 、get方法编译才生效,那么我要查看哪些地方在给某个属性赋值,不知道怎么看了。

其实样板代码对于我们并没有工作量,只是涉及代码大小问题。

3、maven没有gradle方便

感觉maven加一堆的包,没有gradle简洁。
另外作者的环境搭建案例,也没有笔者的spring-boot-1中简洁。

三、对作者的建议

3.1 有误之处

  • application.properties中指定应用访问的上下文有误,有误: server.context-path=/middleware==》 正确:server.servlet.context-path=/middleware
  • log4j.properties中,丢失了变量LOG_PATH和LOG_FILE的设置项

3.2 期待改进之处

1、server模块的pom.xml中,节点出现得很突兀,没介绍;

2、3个模块中用了不少,为什么用?为什么要排除没介绍清除,让人云里雾里;

3、使用lombok需要提醒读者安装插件,否则不生效。

好了,再会!