- 博客(72)
- 资源 (5)
- 收藏
- 关注
原创 【javax.validation】Group分组校验
提示:继承Default并不是必须的。只是说,如果继承了Default,那么的校验范畴就为Create和Default;如果没继承Default,那么的校验范畴只为Create,而的校验范畴才为Create和Default。追注:原因可见下面的第二步中的说明。// 当前校验属于Create组// 当前校验属于Update组// 当前校验既属于Create组,又属于Update组// 当前校验属于Default组// 当前校验属于Default组@NotEmpty。
2025-02-08 15:11:42
681
原创 Springboot @Async 多线程获取返回值
最近需要用到多线程, 自己维护线程池很麻烦, 正好看到Springboot集成线程池的例子, 这里自己做了个尝试和总结, 记录一下, 也分享给需要的朋友;@Bean。
2023-07-26 20:02:28
3248
原创 【Policy】使用 InitializingBean 实现策略时如何避免AOP失效
没有AOP注解(不需要反向代理)使用任意一种没有@Async使用第二种仅有@Async使用第三种强烈建议把@Async和其他AOP注解进行物理隔离,分别放在不同的实现类中。
2023-07-19 16:14:39
888
原创 【Springboot】中@JsonProperty和@JSONField用法和区别
解决json字符串的某些属性名和JavaBean中的属性名匹配不上的问题
2023-03-31 17:38:31
1693
1
原创 【Apollo】支持@ConfigurationProperties动态刷新
Apollo动态刷新后, @ConfigurationProperties的bean未更新
2023-03-30 18:17:13
4269
原创 【SpringBoot】@ConfigurationProperties 及 @Value 的区别和用法
@Value 和 @ConfigurationProperties 的区别和用法
2023-03-30 18:11:25
1086
原创 【SpringBoot】@ConfigurationProperties 及 @Value 注入示例
【代码】【SpringBoot】@ConfigurationProperties 及 @Value 注入示例。
2023-03-30 11:52:38
351
原创 【Ribbon与OpenFeign】的超时设置(解决RetryableException: Read timed out executing问题)
Ribbon与OpenFeign的超时设置(解决RetryableException: Read timed out executing问题)
2023-03-15 18:29:41
1460
原创 【Eureka】剔除和恢复服务
Eureka剔除和恢复服务场景在开发环境中,同一个服务经常被其他开发人员注册到开发环境,导致服务没法正常访问,那么如何将该服务剔除或下线?剔除服务使用Postman设置PUT请求, 请求路径:http://10.5.14.6:7001/eureka/apps/GEMINI-EXTERNAL/APP3-gdmall-dev:gemini-external:9505/status?value=OUT_OF_SERVICE示意:http://10.5.14.6:7001 Eureka地址GEM
2023-03-15 11:12:45
1663
1
原创 【MyBatis-Plus】实现字段自增的5种实现方式 setSql @TableField @Version
Mybatis Plus实现字段自增的5种实现方式 setSql @TableField @Version
2023-03-09 12:08:52
14229
2
原创 【feign】SpringCloud openfeign 调用文件上传服务
概述如何使用openfeign调用文件上传的远程服务呢? 其feignClient如何编写呢?使用@RequestPart示例说明FeignClient接口中文件类型的入参要用@RequestPart注解, 且要设置请求头信息ContentType为multipart/form-data.编写feignClient@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE )void uplo
2022-03-02 17:21:30
750
原创 【Java】电子凭证-Java生成PDF
文章目录背景实现思路技术方案图Template Engines(模板引擎)`Thymeleaf``Apache Freemarker``Groovy Templates``velocity``HTML TO PDF` 技术各实现对比表WKhtmlTOpdfiTextPhantomJS技术核心: HTML生成PDF背景在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等。方便用户查看,下载,打印。目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回
2021-07-12 19:44:47
1839
原创 【Redis】Redis 6 进阶笔记
文章目录Redis高级学习资料1.MySQL高级内容介绍Redis高级Redis是一种基于KV键值的支持多种数据结构、持久化、事务及主从复制的高性能的非关系型数据库(NoSQL);NoSQL是什么 有了MySQL为什么又出现了它, Redis数据类型, Redis持久化, Redis事务, Redis主从复制, Redis缓存失效机制 (在第一个视频里)Redis6新数据类型, Redis秒杀, Redis集群, Redis应用问题-缓存穿透,缓存击穿,缓存雪崩, Redis应用问题-分布式锁,
2021-06-02 23:07:43
188
转载 【java】一个int占多少个字节?
这个问题我们往往得到的答案是4.但是int到底占多少个字节,却跟你的机器环境有关.C类型3264char11short int22int44long int48long long int88char*48float44double88总的来说:32位系统下int long 都是4位字节 short是2字节 char是1字节 ;64位下 long是8字节以上文章来自:http://charlesxie.
2021-05-28 13:06:37
3545
原创 【Nexus】使用Nexus搭建Maven私服
文章目录1.私服简介1.1.Nexus简介2.安装和运行2.1.下载2.2.安装2.3.运行3.用户界面4.Nexus预置的仓库5.配置Maven使用私服1.私服简介私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。我们可以使用专门的Maven 仓库管理软件来搭建私服,比如:Apache Archiva,Artifac
2021-05-17 00:31:52
280
原创 【Maven】Maven 使用 nexus 私服
文章目录nexus配置创建nexus仓库创建nexus用户并授权Maven使用nexus私服配置Maven使用nexus上传下载jarMaven配置nexus用户信息项目 pom.xml 的配置参考nexus配置创建nexus仓库Nexus Repository Manager 3 Repository ManagementNexus Repository Manager 2 Managing Repositories创建nexus用户并授权Nexus Repository Manager
2021-05-17 00:30:26
207
原创 【OAuth2】Spring Security OAuth2 授权失败(401) 问题整理
文章目录一、免登录接口校验token问题二、Token失效返回的是状态401的错误Spring Cloud架构中采用Spring Security OAuth2作为权限控制,关于OAuth2详细介绍可以参考阮一峰的网络日志理解OAuth 2.0项目中采用OAuth2四种模式中的两种,Password模式和Client模式, Password模式用于控制用户的登录,Client模式用于控制后端服务相互调用。权限架构调整后在近期发现一些问题,由于网上资料不多,只能单步调试方式看源码 (其实带着问题看源码是
2021-05-06 01:51:00
10639
原创 【OAuth2】Spring Security OAuth2 授权码模式
文章目录背景介绍扩展(1)`spring-security-oauth2`获取code的controller:(2)扩展的`userApprovalHandler`生效应用(1)获取code值(2)获取accessToken(有效期暂定72h)(3)获取refreshToken(4)访问资源(用户信息)背景由于业务实现中涉及到接入第三方系统(app接入有赞商城等),所以涉及到第三方系统需要获取用户信息(用户手机号、姓名等),为了保证用户信息的安全和接入方式的统一,采用Oauth2四种模式之一的授权码模式
2021-05-06 01:49:00
1476
原创 【OAuth2】Spring Security OAuth2 token权限隔离
文章目录背景哪里重写如何重写新版本配置凭证式权限背景由于项目OAuth2采用了多种模式,授权码模式为第三方系统接入,密码模式用于用户登录,Client模式用于服务间调用,所有不同的模式下的token需要用**@PreAuthorize("hasAuthority('client')")进行隔离,遇到问题一直验证不通过。**通过调试发现资源服务从授权服务拿到的authrities字段一直为空,StackOverFlow说低版本(项目中才2.0.15)的OAuth2实现权限隔离需要 重写UserInfo
2021-05-06 01:47:00
589
原创 【OAuth2】Spring Security OAuth2 源码分析
文章目录要点Server端生成token (post /oauth/token)Resource端验证token (访问受限接口)要点Spring Security OAuth2 主要有两部分功能:生成token验证token对大概的流程进行了一次梳理Server端生成token (post /oauth/token)AuthorizationServerSecurityConfigurer在配置阶段 如果允许form表单提交则会经过ClientCredentialsTokenEn
2021-05-06 01:45:23
311
原创 【SSO】单点登录
单点登录(SSO)单点登录流程图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qbI9nGOc-1620236468537)(notes/SSO Flow Chart.png “单点登录(SSO)流程图”)]参考单点登录(SSO)看这一篇就够了SSO单点登录的研究...
2021-05-06 01:41:47
154
原创 【OAuth2】SpringCloud集成OAuth2
文章目录SpringCloud集成OAuth2要点参考SpringCloud集成OAuth2要点重点搭建OAuth2授权认证服务器、OAuth2资源服务器及OAuth2客户端服务器。其中OAuth2授权认证服务器需要重点了解自定义认证方式、自定义授权方式。其他重点内容后续再补充[oauth2源码](docs/OAuth2 code.md)sso原理参考推荐文档 12参考文档参考文档参考文档优秀源码优秀源码优秀源码优秀源码源码-feign-demoOAut
2021-05-06 01:39:37
277
转载 【RestTemplate】统一记录RestTemplate的调用日志
文章目录重写ClientHttpRequestInterceptor统一记录RestTemplate的调用日志参考重写ClientHttpRequestInterceptor统一记录RestTemplate的调用日志现如今比较火的微服务架构,SpringCloud顺势成为了主流框架,当然SpringCloud并不是一个框架,而是一个框架的集合。不管是否为微服务,难免会有程序之间的调用,当然zipkin可以帮助收集时间数据,解决在微服务架构下的延迟问题,如何详细记录请求以及返回的信息变得比较重要。Res
2021-04-30 02:22:46
3367
原创 【RestTemplate】RestTemplate访问需要OAuth2授权的服务
文章目录RestTemplate访问需要OAuth2授权的服务概述示例OAuth2.0相关配置引入依赖配置application.ymlOAuth2RestTemplate==编写OAuth2RestTemplateConfiguration(重点)==拓展参考RestTemplate访问需要OAuth2授权的服务概述随着微服务安全性的增强,需要携带token才能访问其API,然而RestTemplate默认并不会将 token 放到 Header 中,那么如何使用RestTemplate实现自动设置
2021-04-30 02:11:09
4156
转载 【RestTemplate】自定义 RestTemplate 异常处理
文章目录自定义 RestTemplate 异常处理RestTemplate 异常处理流程自定义 RestTemplate 异常处理参考自定义 RestTemplate 异常处理一些API的报错信息通过Response的body返回。使用HttpClient能正常获取到StatusCode和body中的错误提示。然而使用RestTemplate,会直接抛出下面的异常。如果想获取原始的信息并进一步处理会比较麻烦。org.springframework.web.client.HttpClientErrorE
2021-04-28 00:38:40
2641
原创 【AOP】AOP概述
文章目录简介AOP中的相关概念Pointcut匹配包匹配对象匹配参数`args()`匹配注解匹配方法Advice类型(通知类型或增强类型)参考简介首先先给出一段比较专业的术语(来自百度):在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔
2021-04-24 23:53:44
156
原创 【utils】StopWatch计时器
文章目录StopWatch概述示例代码`org.springframework:spring-core`中的StopWatch`org.apache.commons:commons-lang3`中的StopWatch参考StopWatch概述简单的秒表,允许对许多任务进行计时,暴露每个指定任务的总运行时间和运行时间。隐藏System.nanoTime()的使用,提高应用程序代码的可读性,减少计算错误的可能性。注意,此对象不是设计为线程安全的,也不使用同步。该类通常用于在概念验证工作期间和开发中验
2021-04-21 22:23:32
727
原创 【feign】OpenFeign失败降级未生效和超时配置优先级问题
文章目录OpenFeign失败降级未生效和超时配置优先级问题问题解决源码分析OpenFeign失败降级未生效和超时配置优先级问题问题服务A 通过feign调用 服务B,服务A报警信息如下:经过详细分析后发现该报警由下面原因造成服务A调用服务B失败,未触发声明的失败降级操作同时配置ribbon和feign超时时间,优先级问题feign: client: config: pay-service: # 对服务提供者(优先级高):填对应服务提供者名称,
2021-04-21 02:36:37
2293
原创 【feign】Spring Cloud Feign组件的重试策略及负载均衡策略
文章目录Spring Cloud Feign组件的重试策略及负载均衡策略简介Feign重试策略Feign负载均衡策略Spring Cloud Feign组件的重试策略及负载均衡策略简介在使用Spring Cloud微服务框架的过程中,经常会使用Feign组件进行服务间的远程调用。微服务远程调用技术的dubbo具备负载均衡策略(轮训、最小连接数、随机轮训、加权轮训)及失败策略(快速失败、失败重试),那么 Feign的负载均衡策略是什么? 失败后是否会重试,重试策略又是什么? 带着这些疑问,查阅了一些资料
2021-04-21 02:12:30
1815
原创 【feign】OpenFeign访问需要OAuth2授权的服务
文章目录OpenFeign访问需要OAuth2授权的服务概述示例OAuth2.0相关配置引入依赖配置application.yml配置资源服务器OAuth2FeignConfiguration引入依赖FeignClient使用编写OAuth2FeignClient==编写OAuth2FeignConfiguration(重点)==OAuth2FeignConfiguration相关说明扩展参考OpenFeign访问需要OAuth2授权的服务概述Spring Cloud 微服务架构下使用feign组件进
2021-04-20 00:49:11
4765
4
原创 【SpringBoot】Spring Boot启动流程
Spring Boot启动流程本文主体内容来自浮生半日的<Spring Boot启动流程>这篇文章.
2021-04-08 11:29:01
124
原创 【feign】SpringCloud OpenFeign Hystrix 统一异常处理及熔断机制
文章目录问题`@FeignClient`加上`fallback`方法,并获取异常信息保留原始异常信息不进入熔断,直接抛出异常总结问题最近在项目开发中,使用 Feign 调用服务,当触发熔断机制时,遇到了以下问题:异常信息形如:TestService#addRecord(ParamVO) failed and no fallback available.;获取不到服务提供方抛出的原始异常信息;实现某些业务方法不进入熔断,直接往外抛出异常;接下来将一一解决上述问题。对于failed and n
2021-04-05 02:10:51
6829
6
原创 【feign】OpenFeign自定义配置
文章目录SpringBoot-feign之自定义配置概述示例说明自定义配置优先级第一种:配置文件无配置第二种:feign.client.default-to-properties=true(默认true)第三种:feign.client.default-to-properties=false(默认true)参考SpringBoot-feign之自定义配置概述使用Feign默认配置可能不能满足需求,这时就需要我们实现自己的Feign配置,配置方式:application.properties(.ym
2021-03-29 11:35:29
4707
原创 【feign】重写OpenFeign的Client记录日志
文章目录概述重写`FeignClient`记录日志在FeignClient中配置编写FeignConfiguration重写Client使用`Aspect`切面记录日志参考概述项目里使用了Feign进行远程调用,有时为了便于排查问题,需要记录请求和响应日志,下面简介一下如何保存Feign日志到数据库(Redis/MongoDB):重写FeignClient记录日志使用Aspect切面记录日志本文依赖:spring-boot-starter-parent:2.4.2spring-clou
2021-03-24 00:29:56
2139
原创 【encrypt-api】对SpringBoot控制器统一的响应体加密与请求体解密
文章目录介绍加密解密支持使用方法注解一览表开源协议其他参考介绍本文参考源码, encrypt-body-demo是对SpringBoot控制器统一的响应体加密与请求体解密的注解处理方式,支持AES/DES/RSA/Base64。加密解密支持可进行加密的方式有: AES DES RSA Base64可进行解密的方式有: AES DES RSA Base64使用方法在工程对应的Application类
2021-03-18 00:18:47
1419
原创 【feign】OpenFeign设置header的5种方式
文章目录设置Feign的Header信息概述示例说明在`@RequestMapping`注解里添加headers属性在方法参数前面添加`@RequestHeader`注解在方法或者类上添加`@Headers`的注解使用feign自带契约配置`@Headers`注解在方法参数前面添加`@HeaderMap`注解使用feign自带契约配置`@HeaderMap`注解实现`RequestInterceptor`接口参考设置Feign的Header信息概述在微服务间使用Feign进行远程调用时需要在 head
2021-02-23 00:23:30
49027
13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人