- 博客(26)
- 收藏
- 关注
原创 Feign全局异常处理,返回调用者自定义异常
1. 起因 使用feign有个很头疼的事情,自定义异常在下游服务会被feignException拦截,返回的格式会非常奇怪,feign本身还有熔断机制,各种处理方法侵入性都太强 找不到太好的解决方案,就费时间自己优化了下,demo如下2. demoimport feign.FeignException;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import...
2020-09-18 11:58:29 3536
原创 springboot获取所有URL和swagger注解参数
1.简介 因为做了RBAC结构的权限模型,又懒得写管理界面,就直接一网打尽,写一个获取所有url路径和swagger文档注解的方法,然后百度了下,大部分都是只获取URL接口路径,我拓展了下,可以加上方法的注解参数。 swagger注解可以换成自定义的注解,很简单的,注释里有体现。2.代码 @Autowired private WebApplicationContext applicationContext; @RequestMapping(value = "...
2020-06-03 19:12:07 2427 1
原创 基于CGLIB高性能LIST集合对象复制工具类
1.前言 java开发少不了RO、DTO、VO之类的对象复制,大部分都是基于各类框架提供的方法,比如CGLIB dozerorikaApache BeanUtilsApache PropertyUtilSpring BeanUtils之类的,性能上最强的目前不容置疑的是CGLIB,和手动set、get速度基本一致,甩其他工具几条街,但可能是我用的不熟悉,始终没...
2020-03-17 17:25:07 1613 2
原创 使用redis储存oauth2.0的token报错org.springframework.data.redis.connection.RedisConnection.set([B[B)V
习惯于redis的高性能,搭建oauth2.0的时候,选择了使用redis作为token的储存空间,但使用springboot2.0以上版本的时候,爆了如下错误:org.springframework.data.redis.connection.RedisConnection.set([B[B)V 根据百度和GitHub上的讨论来看,是官方使用的spr...
2020-03-14 01:42:50 1886 1
原创 springCloudConfig统一匹配所有配置包名
1.原因 springCloudConfig配置中心识别各工程对应的配置文件夹,search-paths总要将所有文件夹目录写上非常不方便,增加工程就要增加配置,重启springCloudConfig配置中心。2.版本springboot 2.0.8springcloudFinchley.SR23.解决...
2020-01-17 11:15:54 755
原创 docker下禅道忘记管理员密码怎么办
1.问题 如题,最近交接工作中,发现之前记录的禅道root管理员密码错了,结果按照忘记密码的提示去新建文件,结果没有用。这个重置密码也是没头没脑的,提示的非常不清楚,到底在什么目录新建文件,让人摸不着头脑。2. 解决 应该是在zentao禅道的安装目录下的tmp下新建对应的文件,如果是docker环境就找下docker的挂载目录,如果没有挂载则进入到docker对应的...
2019-12-12 13:43:44 1802
原创 jackson增加日期时间转换后报错
1. 简谈 最近新搭建了一个springcloud架子,联调的时候前端反馈时间格式不友善,我一拍脑袋,直接在web层配置文件中加上了jackson的转换配置,然而和我意料之外的是,程序开始报json转换错误了。2. 解决 一开始加的配置:spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-d...
2019-10-18 16:51:07 567
原创 springboot聚合工程如何将子工程中的ioc容器注入spring
1. 简谈 无论是多模块还是分布式微服务架构体系下,工具类的抽离复用一直是必不可少的步骤,类似我通常都会将redis、全局异常处理、springsession之类的工具类统一抽离复用,特别是分布式环境下,一个工具类一个单独模块都很常见,但问题也随之而来,如何将这些工具类注入到使用模块的spring中。2. 用法 早期我曾经将这些工具类抽离,使用时引入这些工程,然后建一个c...
2019-10-16 15:19:14 520
原创 zuul导致springsession对前端cookie失效
1. 简谈 最近接入springsession出现了点问题,单个工程没问题,但经过springcloud的zuul网关转发后,前端没能写入,导致登录报错。 疑惑了很久,甚至怀疑springsession这款东西是不是个半成品,毕竟很少碰到用的,教程多但细节少。 幸好坚持查了不少资料,最终搞定。2. 版本 springboot 2.0.8 ...
2019-10-15 14:23:07 838
原创 分布式秒杀专题之二 :内存标识
1. 简谈 一般秒杀业务,商品数量通常放在redis,用户秒杀商品,会对redis进行大量的读写操作,而通常秒杀商品的数量有限,在一瞬间就会被秒杀一空,但剩余的用户请求仍然会去查询redis,而且这一部分的请求是难以估计的,远远大于买到商品的用户的数量,会造成非常大的资源浪费。2. 解决方案 内存标识是秒杀场景下,对redis的一种保护机制,它不用引入任何中间件和ja...
2019-05-15 17:39:58 493 2
原创 系统和各中间件配置优化。
1. 简谈 之前长时间在外包开发岗位,很少接触高并发环境下中间件的配置优化,导致独立进入公司,成为高级开发兼顾一部分架构职责的时候有些摸不着头脑,最近搜集了一下linux系统、各类中间件的配置优化,虽然并不是太严谨,但聊胜于无。2.优化配置 1. linux句柄数 句柄数这东西我也说不清楚,一个连接一个句柄还是什么来着,详细的百度吧,总之默认...
2019-05-14 13:59:10 1802
原创 @RefreshScope注解导致配置获取为空
1.原因 集成springcloud+bus+rabbitMQ做配置中心的总线刷配置,结果加上@RefreshScope注解后,测试demo的controller层@Value注解一直取到空值。 2.版本 springboot 2.0.4 springcloudFinchley.SR2 3.解决 现...
2019-04-28 17:33:22 4060 9
原创 redisson切换线上环境后用maven打包时报错。
1.闲谈 最近遇到个很头疼的错误,用了redisson做分布式锁,结果切换成线上环境,结果打包的时候maven开始测试,由于线上是内网ip,结果redisson连接不到,直接抛异常报错,jar包自然没打出来。 后来根据群里好心老哥提示和百度,找到了maven跳过测试的插件,说是插件,其实就是maven自带的配置,放到项目的pom文件里面就行。 这个插件会跳过打包时的测...
2019-04-18 17:21:06 583
原创 一分钟学会docker安装
1.简介 docker是一个在linux系统中运行的虚拟程序,主要是操作镜像(images),许多书籍讲的都太概念性了,实际上,只要会linux操作,docker一分钟就可以学会。 Client层就是输入命令控制镜像的启动、关闭和下载的,和DOCKER_HOST层在同一个linux中,说的太抽象了,安装完docker,在linux窗口输入docker命令,就被成为Client层...
2019-03-08 16:46:56 251
原创 spring-security提供的密码加密方法。
1.引用jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> ...
2019-01-17 16:16:26 14248 1
原创 java8的一些操作
1.stream /** * 循环 */ Stream<Student> stream = list.stream(); stream.forEach( p -> System.out.println(p.getName()) ); ...
2019-01-17 09:48:38 149
原创 HttpUtils发送工具类。
1.引入jar包 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> 版本的话 会根据boot自动导入的似乎 ss...
2019-01-16 17:28:35 737
原创 java语言下短信接入,浅谈各种第三方
1.闲谈 学java的,初期是最苦逼的,和黑客根本就是两码事,不能入侵系统、也写不了脚本外挂,甚至电脑上运行的桌面软件都写不出来,整天对着编辑器的黑框框,输入输出一些字符串,就算学到了web,也是给前端传递、接收json串,时间长了,感觉就是在搬砖,完全没有以前认为的程序员该有的样子。 直到第三方接入的出现,才让人感觉有点程序员的意思了,短信是我们经常接触的东西,所以今天写下短...
2019-01-16 17:13:35 326
原创 java简单集成redis的使用。
先说下,用的是redis.clients这个客户端,好处是,语句贴合原redis的命令,方便入门,另一种客户端spring-boot-starter-data-redis,可能以后会写,但语句有点怪,不适合入门。1.引入jar包 <dependency> <groupId>redis.clients</groupId> ...
2019-01-14 10:14:56 2070
原创 springboot后台跨域设置
1.跨域 跨域什么的没什么好讲的,我也不大清楚,大概是请求返回过去的地址、ip、端口之类的和请求来的地方不同,就会获取不到信息,总之前端后台都有解决方案,我这里讲一下后台 和 前端的json传输2.具体代码 2.1:基于mvc 4.3.8 版本 import org.springframework.context.annotation.Co...
2018-11-20 09:17:49 1285
原创 linux下mysql的安装与操作
1.安装 有时间再写 2.启动service systemctl start mysqld3.关闭service systemctl stop mysqld4.重启service systemctl restart mysqld5.查看状态service systemctl status mysqld6.开机启动servic...
2018-11-12 10:38:48 142
原创 session-data-redis
1.首先要引入jar包 <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version&g...
2018-11-03 15:09:06 221
原创 获取请求方的真实ip
1.介绍 多次转发过来的请求获取第一次请求的ip,大概是每次转发都会把初始的请求ip放到请求头之类的地方,大概是这样吧。 protected String getIpFromRequest(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); ...
2018-11-03 14:45:03 335
原创 springboot中fastJson和properties文件占位符解析
1.介绍 fastJson是阿里巴巴出品的一款速度极快的json解析工具 properties配置文件有时无法解析某些占位符2.使用 直接放到springboot启动类中即可 /** * 解析fastjson * @return */ @Bean public HttpMessageConverters fas...
2018-11-03 14:33:26 2762
原创 springboot下全局异常处理和自定义异常以及自定义返回值
1.介绍 全局异常处理,是mvc的一个新特性,避免大量的重复代码 自定义异常 , 方便使用,抛出自己定义好的异常,配合全局异常处理使用,效果更佳 自定义返回值,类似异常,返回自己定义的返回值2.全局异常处理重点知识1. 新建一个类,我起名为ExceptionHandlerAdvice,意思是错误切面2. 打上注解 @ResponseBody 和...
2018-11-03 10:27:23 4859
原创 基于zookeeper实现分布式锁
1.引入jar包 <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>...
2018-11-02 00:31:25 141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人