背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven-3.6.3 Java版本:jdk1.8.0_231 Git版本:1.8.3.1 docker版本:1.13.1 k8s版本:1.9.8 使用yum install jenkins方式安装jenkins。 俺的J […]
背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven-3.6.3 Java版本:jdk1.8.0_231 Git版本:1.8.3.1 docker版本:1.13.1 k8s版本:1.9.8 使用yum install jenkins方式安装jenkins。 俺的J […]
作为网关,日志记录是必不可少的功能,可以在网关出增加requestId来查询整个请求链的调用执行情况等等。 打印请求日志 打印请求日志最重要的就是打印请求参数这些东西,不过RequestBody通常情况下在被读取一次之后就会失效,这样的话,下游的服务就不能正常获取到请求参数了。所以我们需要重写下请求体。 具体方法呢有很 […]
新建Spring Boot项目 怎么新建Spring Boot项目这里不再具体赘述,不会的可以翻看下之前的博客或者直接百度。这里直接贴出对应的pom文件。 pom依赖如下: <?xml version="1.0" encoding="UTF-8"?> <proj […]
SpringBoot启动概述(SpringBoot2.1.7) 实例化SpringApplication 推断web应用的类型(webApplicationType) 初始化ApplicationContextInitializer:通过ClassLoader.getResources加载META-INF/spring […]
Spring 历史 说起 Spring Boot 我们不得不先了解一下 Spring 这个企业,不仅因为 Spring Boot 来源于 Spirng 大家族,而且 Spring Boot 的诞生和 Sping 框架的发展息息相关。 时间回到2002年,当时正是 Java EE 和 EJB 大行其道的时候,很多知名公司 […]
准备工作 环境准备 JAVA版本 java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) […]
背景&痛点 通过ES进行查询,如果需要新增查询条件,则每次都需要进行硬编码,然后实现对应的查询功能。这样不仅开发工作量大,而且如果有多个不同的索引对象需要进行同样的查询,则需要开发多次,代码复用性不高。 想要解决这个问题,那么就需要一种能够模块化、配置化的解决方案。 解决方案 思路一:配置参数 通过配置参数的方 […]
功能: 实现根据freemarker模板生成对应的PDF文件; 可以指定文字、位置、页数生成指定的印章(图片),可以指定印章大小; 指定字体、字体大小、文字方向、颜色等生成文字水印 maven依赖: <dependency> <groupId>org.xhtmlrenderer</gr […]
背景 SpringBoot和SpringCloud的版本需要对应,不然会因为jar包版本不兼容导致一系列奇怪的问题。因为官方不会保证SpringBoot和SpringCloud不同版本的兼容性。 大版本对应 SpringCloud版本 SpringBoot版本 Hoxton 2.2.x Greenwich 2.1.x […]
@BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次。 @AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次。 @BeforeClass 在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。 @AfterClass 在调用当前类的第一个测试方法之后运行,注释方法仅运 […]
分布式锁有很多种实现方式,下面是用redis实现的一个比较简单实用的方式。源码如下: import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Va […]
参照mongoDB的ID生成策略,生成唯一ID。 一共12个字节(示例:5cecf0a8a7573ea439fa1a89) 前4个字节表示时间戳 再往后数3个字节表示运行当前程序的机器ID 再往后2个字节表示生成此id的进程的ID 最后3个字节表示由一个随机数开始的计数器生成的值 然后转为16进制的字符串。 源码如下: […]
今天有个小任务,需要调用接口同步数据,然后就写了一个JAVA类,打算直接本地执行main()去同步数据。 代码中使用了apache的httpclient来访问接口,发现输出日志太多了, httpclient maven依赖如下: <dependency> <groupId>org.apache. […]
@NotNull:// 可以用在所有类型上面,带有@NotNull注解的元素不能为null。对于集合类型的,没有size的约束。 @NotEmpty:// String, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。 @NotBlank:// String去 […]
黄沙百战穿金甲,不破楼兰终不还。