Java

SpringBoot 统一异常处理

统一异常处理:@ControllerAdvicepublicclassGlobalExceptionHandler{privateLoggerlogger=LoggerFactory.getLogger(getClass());/***处理自定义异常*/@ExceptionHandler(AuthException.c...

SpringBoot 解决HttpServletRequest只能读取一次

业务逻辑,通过filter读取请求的request,获取token,并将token传递后面流程使用BodyReaderHttpServletRequestWrapper:publicclassBodyReaderHttpServletRequestWrapperextendsHttpServletRequestWrap...

SpringBoot 使用jwt进行身份验证

这里只供参考,比较使用jwt方式进行身份验证感觉不好,最不行的就是不能退出登陆时设定多长过期时间,只能等这个时间过了以后才算退出,服务端只能验证请求过来的token是否通过验证Code:/***Createdbyqhongon2018/6/715:34*标注该注解的,就不需要登录**/@Target({ElementT...

SpringBoot 使用RedisTemplate操作Redis

Redis工具类(旧版本)importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.concurrent.TimeUnit;importorg.springframework.beans.factory.annotation...

SpringBoot 消息转换器 HttpMessageConverter

1.简介:Spring在处理请求时,由合适的消息转换器将请求报文绑定为方法中的形参对象,在这里,同一个对象就有可能出现多种不同的消息形式,比如json和xml。同样,当响应请求时,方法的返回值也同样可能被返回为不同的消息形式,比如json和xml。在Spring中,针对不同的消息形式,我们有不同的HttpMessage...

SpringBoot 全局统一记录日志

1.记录日志使用aop来记录controller中的请求返回日志pom.xml引入:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop<...

Java lambda例子

简单数据类型int,跟Integer在lambda中的使用还不一样,有区别code:packagecom.qhong.lambda.testDemo;importjava.util.Arrays;importjava.util.Comparator;importjava.util.List;/***Createdbyq...
代码星球·2020-10-21

Java 使用命令对堆线程分析

一.dump基本概念    在故障定位(尤其是outofmemory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heapdump和threaddump(也叫javaco...

SpringBoot Mybatis问题收集

1.在SpringBoot中打印mybatis中执行的sql其实在application.properties文件下,添加一下配置即可:logging.level.org.springframework=WARNlogging.level.org.spring.springboot.dao=DEBUGlogging.f...

在Java中使用protobuf序列化对象

  什么是protobuf它是一个对象序列化/反序列化的工具,什么是对象的序列化/反序列化?就是把一个Java堆中存活的对象转换成一串二进制编码,然后该编码可以用于本地存储和网络传输。反序列化就是根据一串二进制编码还原出原来的那个对象,protobuf能够将一个对象以特定的格式转换为一个二进制串(序...

Java中加载properties配置文件的几种方式

项目中有时候需要从配置文件中加载各种配置属性。1.利用FileInputStream这种方式比较适合从任意路径加载配置文件,文件路径是绝对路径。直接看代码//初始化资源加载器,boolean值指示加载成功还是失败privatestaticbooleaninitialize(){try{try{stream=newFil...

Java NIO

NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区),Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如:连接打开,数据到达)...
代码星球·2020-10-20

作业(三)——基于VSCode的Java编程语言的构建调试环境搭建指南

vscodeJava开发环境配置  系统需安装jdk1.8,配置好环境变量JAVA_HOME打开vscode,安装java相关插件 1)LanguagesupportforJava™forVisualStudioCode2)JavaExtensionPack3)DebuggerforJav...

Java线程模拟死锁

之前一直存在一个误区:当某一个线程进入临界区,如果它无法继续运行下去而陷入阻塞,是会自动释放掉自身持有的锁。因而,在Java中很难出现循环等待而导致死锁。结果证明这是错的,下面的代码出现了Synchronization关键字的嵌套使用,发生了死锁:publicclassTestDeadLock1{publicstati...
代码星球·2020-10-20

IDEA Cannot resolve directory '$'{'JAVA_HOME}'

用idea新建一个maven项目,演示hdfs客户端操作。导入依赖之后,发现有一处标红:<dependency><groupId>jdk.tools</groupId><artifactId>jdk.tools</artifactId><version&...