springSecurity 防止csrf攻击 springSecurity 防止csrf攻击 启用csrf filter。 123456public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exceptio 2020-07-14 #springboot #springSecurity #csrf
maven utf8控制台下乱码 maven命令 GitBash控制台下乱码 添加环境变量 键 MAVEN_OPTS 值 -Dfile.encoding=UTF-8 重启GItBash,再试。 2020-07-09 #maven
logback输出彩色日志,每个请求一种颜色 logback输出彩色日志,每个请求一种颜色,提高工作效率 TOC{:toc} Java项目,日志使用的时slf4j + logback,在服务器上查看日志时,都是黑白的,想要在服务器上输出的日志是彩色的,可以大大提高查看效率。 配合slf4j的MDC功能可以实现,可以实现一个请求链输出同一种颜色。 输出颜色的基本原理 linux是自带ANSI功能是支持彩色日志的,可以这样测试下,下面 2020-06-28 #slf4j #logback
git rebase使用场景 git rebase使用场景 TOC{:toc} 场景1,多用户对同一远程仓库进行提交A,B同时从仓库pull下来代码,此时两人代码是一样的。 首先是A,进行了修改 123//修改文件a.txtgit add a.txtgit commit -m "修复bug1" 此时A的log是: ![image-20200629144439490](/img/ 2020-06-28 #git #git rebase
springmvc异常处理 Springmvc全局异常处理,实现原理 Springmvc的异常处理是由下面这个接口提供的,只有一个方法,用来处理异常。称之为异常处理器。 1234567public interface HandlerExceptionResolver { ModelAndView resolveException( HttpServletRequest request, HttpServlet 2020-06-23 #java #全局异常处理
java web请求乱码问题 java web请求乱码问题1.get请求路径参数内的中文发起请求 /test?name=黄 1.因为有汉字,浏览器会将其编码为Url编码,使用哪种字符集浏览器决定,但是多数应该都是utf-8 2.tomcat解析此处的参数为name=%E9%BB%84的形式 3.代码调用request.getParameterMap() 此时会进行Url解码 2020-06-19 #java #乱码问题
Spring Bean初始化过程 Spring Bean初始化过程 本文讨论Spring容器下的Bean初始化过程。 创建SpringBoot项目,创建如下类,通过它研究Bean的初始化过程。 123456789101112@Componentpublic class Cat implements ApplicationContextAware { public Cat() { Syste 2020-06-15 #spring #java #Bean初始化过程
SpringBoot使用Websocket总结 SpringBoot使用Websocket总结1.添加依赖1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependenc 2020-06-15 #spring #springboot #java #websocket
Spring并发发送Websocket消息 Spring并发发送Websocket消息 服务器的Websocket被客户端连接后,会创建一个WebsocketSession表示客户端连接,如想向客户端发送消息直接使用WebsocketSession发送即可。但是按照协议规范这个类是不是线程安全的,且发送过程是堵塞式的。 在此Spring提供一个代理类,他能处理线程安全问题, 他就是org.springframework.web.sock 2020-06-07 #spring #websocket
Java的CopyOnWriteArrayList Java的 CopyOnWriteArrayList CopyOnWriteArrayList会在每次更新时更换底层数组,这样你使用增强for循环或者iterator遍历时,遍历的数组一定和你第一次获取的数组相同,不会出现遍历过程中修改List,导致List混乱的问题。 查看下CopyOnWriteArrayList的forEach()方法: 这个方法会获取底层数组作为局部变量保存,然后遍历 2020-06-06 #java #CopyOnWriteArrayList