![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记(记录)
笔记(记录)
cme-grape
这个作者很懒,什么都没留下…
展开
-
记录:redis存储了数据,取不到值
redis 序列化问题原创 2022-06-29 10:54:59 · 2077 阅读 · 0 评论 -
记录:AWS S3桶权限设置
要求:1、关闭公开访问 2、服务器使用ak、sk连接,设置存储桶策略 3、开启桶加速,使用 cloufront 域名或者自定义域名1、存储桶设置--阻止共有访问2、在 CloutFront 控制台 源访问身份 并分配2.1、创建---源访问身份(OAI)2.2、分配源访问身份的访问3、配置S3桶的存储桶策略 设置桶的访问权限后,!!!注意代码里面不要设置文件的共有访问属性{ "Version":...原创 2022-03-15 15:53:06 · 2776 阅读 · 0 评论 -
记录:keycloak 获取用户的AccessToken 不包含用户角色
用户登录后获取到的token信息不包含角色信息(红框里面的内容)经过排查发现需要在keycloak 的客户端里设置一下作用域方案1、把允许全范围的开关打开方案2、把需要放进token的角色分配到 Realm角色中...原创 2022-02-09 10:18:30 · 1084 阅读 · 1 评论 -
记录:Could not extract response: no suitable HttpMessageConverter found for respo
使用 RestTemplate 请求接口设置JSONObject 为返回对象,content-type:text/plain;charset-utf-8接口正常返回结构了,转换响应体时报找不到合适的 HttpMessageConverter看了下RestTemplate 的配置只设置了MediaType.TEXT_PLAINMediaType.TEXT_HTML新加了json的返回就正常了MediaType.APPLICATION_JSONMediaType.APPLICATION_O.原创 2021-12-01 10:33:43 · 2853 阅读 · 0 评论 -
记录:不同的请求获取到了相同的 ThreadLocal 值
1、在项目中使用线程内的变量储存用户的信息由于接口是匿名接口,带不带令牌都是可以的,测试发现不带令牌请求接口偶尔也能获取到用户的信息private static final ThreadLocal<String> threadLocal = new ThreadLocal<String>();threadLocal.set("xxx")2、这是因为在项目中使用了线程池,多个请求会用到同一个线程,而线程的变量没有被销毁3、解决方案:在拦截器中配置,在每次请求结束把线原创 2021-09-17 17:07:22 · 923 阅读 · 1 评论 -
记录:nginx正向代理报502
1、在开发小程序项目中,由于服务器在国外(域名没有在国内备案),小程序要求域名需在国内备案后才能使用,故注册了一个国内域名并备案后,在代理到域外的服务器上。location / { proxy_pass http://xxx.com/;}结果访问时报502;在备案的域名解析的服务器上访问也是正常的;2、这是因为nginx在访问时,把域名解析成ip进行访问的,接口只能通过域名访问(nginx同端口不同域名及禁用未绑定域名访问的配置,确实可以实现,这是https的SNI问题)3、解决原创 2021-09-17 16:55:55 · 3232 阅读 · 0 评论 -
记录:ftp 上传文件报 451 Failure writing to local file
在使用ftp过程中遇到的一个问题,ftp界面报错:451 Failure writing to local file一般来说,主要有两个原因:一、磁盘满了使用 df -h 查看磁盘使用情况 ,发现磁盘满了,然后查看是否又可以删除的东西(例如:日志)在阿里云控制台选择云盘热扩容,扩容完毕登录到服务器安装扩容工具yum install -y cloud-utils-growpart执行 扩容分区growpart /dev/vda 1执行 扩容文件系统resize2fs ...原创 2021-03-22 16:40:43 · 6138 阅读 · 0 评论 -
记录 git 忽略文件配置以及 .gitignore 修改后不生效
1、git 配置 bootstrap.properties 文件不提交在.gitignore 文件添加 *.properties 提交后发现没有生效,经过排查发现是缓存的问题,执行下面的命令即可解决git rm -r --cached .git add .git commit -m 'update .gitignore'...原创 2021-03-18 09:49:10 · 309 阅读 · 0 评论 -
微信小程序登录流程
一、流程图说明:调用wx.login()获取临时登录凭证code,并回传到开发者服务器。 调用auth.code2Session接口,换取用户唯一标识 OpenID和会话密钥 session_key。 获取手机号,调用wx.getPhoneNumber(),获取加密串 encryptedData 和加密算法的初始向量 ivStr 传到后台,用会话秘钥sessio...原创 2019-11-06 15:00:58 · 2109 阅读 · 2 评论 -
命令行mvn打包
jar :mvn clean install -Dmaven.test.skip=truewar:mvn clean package -Dmaven.test.skip=true说明:clean是清除之前的jar包,install是打包到本地(如果用deploy,是打包到远程仓库)-Dmaven.test.skip=true是忽略测试代码;...原创 2019-09-16 17:58:50 · 186 阅读 · 0 评论 -
List 转化 Set 去重 通过对象某个属性排序
1、创建实体类public class Person { private int id; private String name; private int age; public Person(int id,String name,int age){ this.id = id; this.name = name; ...原创 2019-08-28 10:21:36 · 721 阅读 · 0 评论 -
list通过里面对象的某个属性分组、分组求和、去重
1、实体类和list集合//实体类public class User { private int id; private String name; private int age; public User(int id,String name,int age){ this.id = id; this.name =...原创 2019-07-03 10:32:12 · 8763 阅读 · 0 评论 -
前端 JSON.parse() 转换的字符串 key 和 value 必须是双引号!!!
JSON.parse()转换的字符串必须k和value必须是双引号!!!1.双引号替换成单引号var_adrobj=JSON.stringify(address).replace(/\"/g,"'"); 2、单引号替换成双引号var_nstr=_adrdata.replace(/'/g,'"'); ...原创 2019-01-25 16:34:06 · 1848 阅读 · 0 评论 -
记录 springboot + spring security 配置跨域和访问权限配置
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)public class SecurityConfig extends WebSecurityConfigurerAdapter{ @Override protected void configure(HttpSecurity httpSecurity) throws Exception{ httpSecurity..原创 2020-06-18 14:18:10 · 653 阅读 · 0 评论 -
maven + spring boot 多环境配置
1、在pom 文件添加 profiles 节点<profiles> <profile> <id>dev</id> <properties> <environment>dev</environment> </properties> <activation> <activeByDefault>true</activeByDefault&g原创 2020-05-14 10:01:32 · 235 阅读 · 0 评论 -
Linux环境 Redis 清空缓存
1、进入redis根目录2、cd src/ 进入src目录,执行 ./redis-cli 进入redis数据库3、dbsize 查看数据大小 ####若报 (error) NOAUTH Authentication required. 则需要先输入密码4、flushall 清空数据5、exit 退出redis数据库...原创 2020-03-10 13:52:16 · 1465 阅读 · 0 评论 -
Executors 提供几种常见的线程池
1、Executors常用的机种方法/** * 创建一个包含指定数目线程的线程池 * 如果任务书比线程数多,那么没有执行的任务必须等待,直到有任务完成并释放线程 * 如果线程池中的某个线程由于异常而结束时,线程池就会再补充一条新线程。 * * todo 主要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至 OOM。 */ ...原创 2019-11-20 10:20:31 · 207 阅读 · 0 评论 -
ThreadPoolExecutor 创建线程池
ThreadPoolExecutor 创建线程池/** * public ThreadPoolExecutor( * int corePoolSize, //--线程池核心池的大小。 * int maximumPoolSize, //--线程池的最大线程数。 * long keepAli...原创 2019-11-18 18:00:59 · 415 阅读 · 0 评论 -
记录 spring boot 配置拦截器不生效
WebConfig 继承了 WebMvcConfigurationSupport 重写了addInterceptors、addREsourcesHandlers 等方法Swagger2Config 也继承了WebMvcConfigurationSupport 重写了addREsourcesHandlers 配置可以访问静态资源结果导致WebConfig 中配置拦截器不生效。把Swagger2Config 中配置可以访问静态资源的方法,配置到 WebConfig 中,去掉...原创 2020-08-13 19:02:08 · 323 阅读 · 0 评论 -
spring boot 配置拦截器
1、写一个拦截器在Spring MVC中,拦截器有两种写法:要么实现HandlerInterceptor接口,要么实现WebRequestInterceptor接口而Spring Boot也只是集成了Spring MVC而已,所以拦截器的写法还是一样的。不一样的是Spring MVC的拦截器需要在xml文件中配置,而Spring Boot只需要在类上加@Component注解即可,这样当前拦截器才会被扫描到。这里只需要实现HandlerInterceptor接口即可。/** * 自定义拦截器原创 2020-07-29 17:29:18 · 393 阅读 · 0 评论 -
Spring 三级缓存解决循环依赖
1. 前言循环依赖:就是N个类循环(嵌套)引用。通俗的讲就是N个Bean互相引用对方,最终形成闭环。用一副经典的图示可以表示成这样(A、B、C都代表对象,虚线代表引用关系):其实可以N=1,也就是极限情况的循环依赖:自己依赖自己 这里指的循环引用不是方法之间的循环调用,而是对象的相互依赖关系。(方法之间循环调用若有出口也是能够正常work的)2. Spring Bean的循环依赖谈到Spring Bean的循环依赖,有的小伙伴可能比较陌生,毕竟开发过程中好像对循环依赖这个概念无转载 2020-07-15 11:28:24 · 322 阅读 · 0 评论 -
高频面试题:Spring 如何解决循环依赖?
在关于Spring的面试中,我们经常会被问到一个问题:Spring是如何解决循环依赖的问题的。这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不一定能够一下子思考出个中奥秘。本文主要针对这个问题,从源码的角度对其实现原理进行讲解。1. 过程演示关于Spring bean的创建,其本质上还是一个对象的创建,既然是对象,读者朋友一定要明白一点就是,一个完整的对象包含两部分:当前对象实例化和对象属性的实例化。在Spring中,对象的实例化是通过反射实转载 2020-07-15 10:53:38 · 212 阅读 · 0 评论 -
记录 maven + spring boot + shiro 整合 swagger2 访问 404 和 服务端报类型转换错误
一、添加 swagger 相关依赖配置1、添加 maven 依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </depend原创 2020-07-10 16:52:57 · 733 阅读 · 0 评论 -
logback 日志配置记录
一、项目背景 spring boot + maven二、配置说明:logback如果需要灵活的配置日志级别,需要结合过滤器,<filter></fiter>这个标签。需要注意的是,过滤器过滤的基础是在root标签的配置基础上进行的。过滤器可以写在appender标签内,可以写一个或多个,顺序执行。过滤器会对每个级别的日志设置枚举值,表示对日志的处理方式。DENY:日志将立即被抛弃不再经过其他过滤器;NEUTRAL:有序列表里的下个过滤器过接着处理日志;(该级别既不处原创 2020-06-28 17:26:17 · 310 阅读 · 0 评论