Yezhiwei Blog

平时多流汗,战时少流血!

Lombok 子类中如何使用@Builder

Lombok神器 转载文章 https://blog.csdn.net/lqadam/article/details/82719841 Lombok 大家都知道,在使用 POJO 过程中,它给我们带来了很多便利,省下大量写 get、set 方法、构造器、equal、toString 方法的时间。除此之外,通过 @Builder 注解,Lombok 还可以方便的时间建造者模式。 但是,在使...

Git Flow 插件使用

创建一个 demo 在本地目录新创建项目 使用集成开发环境 IDEA 的向导(Spring Initializr)创建一个 Spring Boot 的项目,然后将其初始化为一个 Git Repository (VCS -> Import into Version Control -> Create Git Repository),这时在新项目上右键就可以看到 Git 菜单了,这样...

Git Flow 工作流程

关于分支分类 主分支 master 分支,存储官方发布历史,始终都是稳定状态。 develop 分支,作为功能集成历史的分支。 辅助分支 feature 分支,一个功能特性的开发分支。 release 分支,进行测试发布。 hotfix 分支,快速修复 master 分支的 bug。 分支的生命周期 master 分支与 develop 分支与项目的生命周期共存亡 feature ...

是时候将日志框架升级到Log4j2了

为什么要升级 现在维护的公司项目,在不同的时期使用了不同的日志框架,最早的 Log4j,前两年开始使用 Spring Boot ,日志使用了 Logback,最近看到一些介绍 Log4j2 的文章和官方的性能测试对比。所以计划在未来的新项目中使用 Log4j2,及旧项目的日志升级为 Log4j2 。在实践的过程中也遇到了一些问题,下面做一个简单的记录。 旧项目的日志使用的Log4j 一...

Java应用程序读取外部配置文件

背景 当我们在服务器上安装一些软件服务时,如 MySQL、Kafka、ES 等,在启动服务的时候,脚本会读取默认路径下的配置文件,如果配置文件没有放到默认的路径下,我们也可以通过参数的方式指定,通过这个配置文件,可以灵活方便的开始某些功能或调整某些参数,不用重新对源码进行修改、编译和发布了。 所以,我们工作当中有时希望可以把配置文件放在程序外,这样的话就可以做到配置与业务分离,在项目中使用...

ContiPerf轻量级的测试工具

ContiPerf 介绍 In order to assure software performance, software needs to be tested accordingly as early as possible - only weaknesses diagnosed early can be assessed quickly and cheaply. ContiPerf ...

SpringBoot-MapStruct自动合并多表查询结果

Mapstruct进行实体与模型之间的自动映射操作

背景 在我们开发的规范中,MySQL 数据库不使用多表查询,也就是 @OneToMany 、 @ManyToMany 这样的注解不会出现在我们的实体中。但在实际的工作中,返回给前端的 Model 数据往往来自多个表的数据拼装。 使用 Mapstruct 来进行实体与 Model 之间自动映射 MapStruct 是一个代码生成器的工具类,简化了不同的 Java Bean 之间映射的处理,指的...

SpringBoot-JPA数据库操作

JPA 常用API CurdRepository 提供了增删改产方法。 PagingAndSortingRepositroy 增加分页查询和排序方法。 JpaRepositroy 增加了实例查询方法。 实际应用中可以有选择的继承上面任何一个接口都可以。 JPA 查询语句关键字 JPA 提供的查询方式可以直接从方法名中派生成查询(需要遵循它的规范),都需要以findBy开头,且方法中的字...

服务发现组件

服务注册中心

服务发现要解决的一个问题是: 解耦服务。 服务提供者、服务消费者、服务发现组件三者关系: 各微服务启动的时候,将自己的网络信息注册到服务发现组件中,服务发现组件会储存这些信息。 服务消费者可以通过服务发现组件中查询服务提供者的网络地址,并使用该网络地址调用服务。 各微服务与服务发现组件通过心跳机制通信,服务发现组件如长时间无法与某个服务实例通信,服务发现组件会注销该实例。 在微服务架...

微服务为什么要使用网关服务

在没有网关服务时,是怎么工作的 不同的微服务一般会有不同的网络地址,但 web 端或 APP 端需要调用多个服务的接口才能完成一个业务需求。在这种客户端直接与各个服务通信的架构时,会有以下问题: 客户端需要维护很多服务的请求地址; 客户端会多次请求不同的微服务,增加了客户端的复杂性; 存在跨域请求,处理相对复杂; 认证复杂,每个服务都需要独立认证; 随着项目的迭代,可能需要重新划分微服务(...