logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

springboot集成logback日志通用logback.xml模板详解

springboot集成logback日志 通用logback.xml模板详解日志级别trace<debug<info<warn<Error默认打印info及其以上级别的日志,默认不打印debug日志<?xml version="1.0" encoding="UTF-8"?><!-- 配置文件每隔1分钟,就检查更新 --><configurat

#lucene#apache#全文检索
mybatis一级缓存和二级缓存

一级缓存的实现类,里面其实就是一个HashMap没有过多的并发设计。key是一个Object,他的类型是CacheKey,所以在Map里面put或者get操作时,CacheKey的HashCode方法和equals就很重要了。因为HahsMap源码里面针对Hash碰撞和数据覆盖就会用到这个2个方法。//Key的设计:CacheKey,很多属性//哈希码存到Map里面会用到,这个也是提前生成好的。/

文章图片
#mybatis
spring+mybatis+log4j日志问题排查

一、问题概述:1、在我们实际开发中,如果用到mybatis,必然会用到spring。那么针对mybatis,我们会选择什么日志呢?在实际开发项目中遇到了一个问题那就是,我选了log4j,但却没有mybatis的sql日志输出。二、问题分析:针对mybatis,我们来分析下他的日志选择规则。mybatis的日志创建在LogFactory.class的类下static {tryImplementati

#mybatis#log4j
面试-springboot-mybatis启动流程

一、看完本篇文章你会知道1、Mapper是如何被扫描进来的2、Mapper是如何被实例化的二、Spring加载Mapper1、在spring启动的时候,会执行refresh刷新方法,刷新里面会有一个invokeBeanFactoryPostProcessors方法,他调用ConfigurationClassPostProcessor后置处理器去加载各个Bean2、ConfigurationClas

#spring#java#后端 +1
过滤器和拦截器

过滤器:Filter描述:Filter对web服务器管理的所有资源进行拦截,例如实现URL级别的权限访问控制、过滤敏感词汇等。大致流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。Filter接口中有一个doFilter方法,里面编写我们的业务逻辑,配置对哪个资源进行拦截,在调用service方法之前,都会先调用一下f

#spring#servlet
skywalking-JavaAgent介绍

javaagent、skywalking-agent

Jstack查询线程堆栈

Jstack是什么?jstack是java虚拟机自带的一种堆栈跟踪工具。jstack主要用来查看Java线程的调用堆栈的,可以用来分析线程问题(如死锁)。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道

文章图片
#java
深入分析AQS实现原理

深入分析AQS实现原理简单解释一下J.U.C,是JDK中提供的并发工具包,java.util.concurrent。里面提供了很多并发编程中很常用的实用工具类,比如atomic原子操作、比如lock同步锁、fork/join等。从Lock作为切入点我想以lock作为切入点来讲解AQS,毕竟同步锁是解决线程安全问题的通用手段,也是我们工作中用得比较多的方式。Lock APILock是一个接口,方法定

#java
Spring boot中获取application.yml配置

在实际开发中,我们会在把环境配置放到yml中那么我们如何获取yml的值呢。先上3种ymlmavenDemo:port: 80mavenDemo1:super:port: 81mavenDemo2:List:- port: 82- port: 83比如这种yml格式我们如何分别获取他们的值呢。方式一:使用@Value注解的方式。public class DemoProperties {@Value(

#spring boot#java#spring
4-API-Redisson

Redisson:if (redis.call('exists', KEYS[1]) == 0) then判断key是否存在redis.call('hset', KEYS[1], ARGV[2], 1);如果不存在,则设置key的 某个字段value=1redis.call('pexpire', KEYS[1], ARGV[1]);设置key的过期时间return nil;end;if (redi

#java#redis#缓存
到底了