作为网关,日志记录是必不可少的功能,可以在网关出增加requestId来查询整个请求链的调用执行情况等等。 打印请求日志 打印请求日志最重要的就是打印请求参数这些东西,不过RequestBody通常情况下在被读取一次之后就会失效,这样的话,下游的服务就不能正常获取到请求参数了。所以我们需要重写下请求体。 具体方法呢有很 […]
作为网关,日志记录是必不可少的功能,可以在网关出增加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去 […]
Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma -- which is living with the results of other people's thinking. Don't let the noise of other's opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.