- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 springboot项目如何使用tomcat来完成Basic Auth认证
假如项目需要把一些接口加上安全认证访问限制,比如这里使用比较简单的Basic Auth认证,那么应该如何使用tomcat的自带的认证机制来完成访问限制呢。
2024-01-05 18:05:55
1096
原创 如何使用tomcat的jndi来注入自己的资源
问题场景:springboot项目启动报如下错误javax.naming.NamingException: Unexpected exception resolving reference at org.apache.naming.NamingContext.lookup(NamingContext.java:884) ~[tomcat-embed-core-9.0.80.jar:9.0.80] at org.apache.naming.NamingContext.lookup(NamingCont
2023-12-25 17:52:35
448
原创 java中异步日志如何记录主线程的日志上下文信息
如果在项目于里面自定义了日志格式,比如记录链路追踪的traceId字段,当一次请求过来的时候可以通过traceId字段过滤出本次请求的完整日志。
2023-09-26 16:17:48
326
原创 mockito如何测试带有文件操作相关的代码
假如你有这样的一个要测试的方法,因为我们不需要文件操作的真实行为,所以必须使用mock的方式。
2023-07-30 12:31:54
1323
2
原创 被@Transactional注解的方法如何使用异步调用
当线程池的任务执行的时候可能事务还没提交,这样就查不到一些入库的数据。可以把上面代码做如下改动即可解决问题。
2023-03-27 16:01:44
1698
1
原创 关于使用JSch连接sftp服务器的时候报UnknownHostKey异常
问题场景:因项目上需要下载第三方的sftp文件,这里用的是JSch连接的sftp服务器,JSch只需要在pom文件引入即可 <!-- sftp --> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1
2022-05-10 15:20:53
2920
1
原创 针对SpringBoot Actuator未授权访问端点问题
问题场景:目前SpringBoot Actuator暴露出的端点是未经授权就可以直接访问的,这样可能会存在一些安全隐患解决方法1.第一种方案:可以在配置文件中把暴露出的端点排除掉#开启所有的端点访问(目前 health和info是默认开启的)management.endpoints.web.exposure.include=*#屏蔽掉health端点management.endpoints.web.exposure.exclude=health这种方案屏蔽掉之后,就不能在访问了,对于项目
2022-03-24 14:36:20
3455
2
原创 ribbon的重试次数
项目场景:服务之间的调用可能会出现一些无法访问或者超时等错误,有时候需要重试机制来解决问题application.properties配置:#ribbon 单独配置 springboot 2.4.x的版本无法使用#ribbon本地配置服务列表,没有使用eureka OrchestrationClient为服务名OrchestrationFeignClient.ribbon.listOfServers=http://127.0.0.1:22114,http://127.0.0.1:2211
2022-01-18 11:10:28
755
2
原创 webflux项目如何用fastjson来解析请求参数
项目场景:项目采用的是webFlux框架,对于传入json格式的请求数据用fastjson来解析问题描述:假设实体是下面的结构:@Datapublic class Student { //姓名 @JSONField(name = "Name") private String name; //性别 @JSONField(name = "Gender") private String sex; //年龄 @JSONField(na
2022-01-07 16:21:28
1215
1
原创 java生成指定长度的随机字符串
生成一个指定长度的随机字符串package com;import java.util.concurrent.ThreadLocalRandom;/** * 获得指定长度的随机字符串 * @author zhoule */public class RandomString { private static final String CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
2021-09-15 14:52:43
2343
1
原创 swagger2如何让页面的展示字段按照@JSONField配置的属性来展示
前言项目中使用了FastJson,并定义了实体字段展示的名称,比如就像下面这样@Datapublic class User { @JSONField(name = "UserId") @ApiModelProperty("用户ID") private Integer id; @JSONField(name = "Name") @ApiModelProperty("姓名") private String name; @JSONField(nam
2021-08-10 12:02:14
911
5
原创 feign是如何创建代理对象的
Feign如何创建代理对象的前言@EnableFeignClients注解前言首先我们使用feign调用其他服务的接口的时候,只需要定义一个接口,比如就像下面这样:业务代码调用的时候也只需要通过接口直接调用就可以,但是底层到底是如何实现调用的呢@EnableFeignClients注解首先@EnableFeignClients注解是是开启feign调用功能的关键,这个注解我们一般会加在启动类上面,让我们看看这个注解里面都是什么@Retention(RetentionPolicy.RUNTIME
2021-08-09 15:42:53
656
2
原创 java.lang.IllegalStateException: getReader() has already been called for this request
项目上因为有需要需要在拦截器里面获取请求体里面的数据进行数据验证,因为自己定义的controller里面对使用了@RequestBody注解,导致项目报错了报错的内容是:java.lang.IllegalStateException: getReader() has already been called for this request查阅资料发现request里面的的getReader 和getInputStream因为是以流的方式获取的,读取一次后,后续就不能再用了,解决思路是:第一步:定义一个过
2021-07-22 15:55:31
2910
3
原创 chrome浏览器安装右键翻译插件
平常打开网页查看相关文章的时候,遇到一些不会的因为单词,可能第一反应是复制英文单词到百度翻译里面,下面为介绍一种直接右键选中英文单词,实现在线翻译的插件。这边用到的是“划词翻译”插件,安装步骤如下:第一步:下载扩展程序插件链接: https://pan.baidu.com/s/17zF7AksigMwLh8McRBVG0w 提取码: hmat第二步:选择其中任意一个版本,我这边用到的是v8.4.0,然后在谷歌浏览器上打开更多工具->扩展程序,将下载后的文件拖放到扩展程序页面,就会实现自动安装,
2021-07-12 11:02:59
4844
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人