- 博客(155)
- 资源 (1)
- 问答 (4)
- 收藏
- 关注

原创 Springboot自动加载配置原理分析
1. springboot自动配置的原理初探 以下注解都在springboot的自动化配置包中:spring-boot-autoconfigurespringboot程序的入口是在启动类,该类有个关键注解SpringBootApplication@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfig
2021-10-14 17:49:59
750
1

原创 idea2020.2卡死在reading maven projects
idea2020.2创建springboot项目打开卡死在reading maven projects;解决方法:移除工程目录/.mvn/maven-wrapper.properties 文件即可参考地址
2020-11-26 14:46:04
15142
24
原创 Maven的生命周期
最新重新回过头看了一下maven,对它的生命周期有新的理解,以前只会用,或者说出问题后百度一下,没有从原理上理解maven的运行机制。概念上分为以下几个:以前一直对maven的生命周期理解的很模糊,对clean/build/site三条生命周期稀里糊涂的,可能是被类似这种连写的方式误导了,最近有心得理解。其实字面意思很明显了,“生命周期”,什么是“生命周期”,其实就是一条完整的流程,或者叫流水线,每条流水线上已经按照顺序定义好了phase。那clean/build/site其实就是三条独立的流水线。
2023-06-09 11:08:49
1010
原创 SpringSecurity自定义多重登录方式
前后分离项目,SpringSecurity自定义多重登录方式,通过自定义AuthenticationProvider实现,同时自定义过滤器进行登录验证
2022-12-27 16:40:35
6428
14
原创 使用github+vuepress搭建个人博客
使用github+vuepress搭建个人博客,实现自动化部署,提交代码自动发布,效果参考https://chensino.github.io/
2022-07-15 21:26:56
439
原创 证明SPI打破双亲委派
1、什么是双亲委派?注:此处直接摘抄周志明老师的《深入理解java虚拟机》 站在Java虚拟机的角度来看,只存在两种不同的类加载器:一种是启动类加载器(BootstrapClassLoader),这个类加载器使用C++语言实现[1] ,是虚拟机自身的一部分;另外一种就是其他所有的类加载器,这些类加载器都由Java语言实现,独立存在于虚拟机外部,并且全都继承自抽象类java.lang.ClassLoader。 站在Java开发人员的角度来看,类加载器就应当划分得更细致一些。自JDK 1
2022-04-01 12:00:55
2659
原创 彻底搞懂java中的几种代理以及他们之间的关系
1、代理的分类#mermaid-svg-RecfC3RkFwKe4kmj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-RecfC3RkFwKe4kmj .error-icon{fill:#552222;}#mermaid-svg-RecfC3RkFwKe4kmj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg
2022-03-13 17:41:29
1277
原创 给不用的对象设置null的意义
前言:是否需要把不用的对象设置为null?1、开始写代码测试(所有测试都要加上以下指令)jvm参数-Xms20m -Xmx20m -Xmn10m -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=2097152简单解释一下:-Xms20m -Xmx20m这两个指令限制堆内存固定为20m不允许扩容-Xmn10m代表分配给新生代的总内存为10m-XX:SurvivorRatio=8代表Eden区和Survivo.
2022-03-08 15:38:49
413
原创 Mybatis连接数据库部分源码分析
1、JDBC连接数据库的四部曲 public static void main(String[] args) throws Exception { //1. 加载驱动 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "
2022-03-07 16:27:19
979
原创 Linux查找目录下多文件中是否包含字符串
grep -r targetString targetDirectory# -r 表示递归查询# targetString 表示目标字符串# targetDirectory 表示目录更过功能:-r 是递归查找-n 是显示行号-R 查找所有文件包含子目录-i 忽略大小写—xargs配合grep查找find -type f -name '*.php'|xargs grep 'message'...
2021-11-02 10:17:57
303
原创 java程序启动后删除jar包会怎么样?
今天想复习一下JDK8的MetaSpace内存空间,找到了一篇博客,对比了MetaSpace和老版本jdk的永久代PermGen。其中 有一句话·it contains data about bytecode, names, and JIT information.·,翻译过来就是永久代包含了bytecode, names, and JIT information,这里的字节码指的就是class文件。所以回到题目,当我们运行一个jar项目,就比如是一个springboot项目,然后我们删除jar包,程序会不
2021-10-19 11:50:51
4258
1
原创 Spring源码分析之BeanPostProcessor
文章目录1. BeanPostProcessor介绍1.1 postProcessBeforeInitialization方法和postProcessAfterInitialization方法调用时机2. 再看看BeanPostProcessor能做什么,有什么使用场景1. BeanPostProcessor介绍打开源码里面有两个方法,分别是postProcessBeforeInitialization和postProcessAfterInitialization。public interface B
2021-10-18 14:41:43
510
原创 盘点面试官那些沙雕又自以为高深的面试题
1. String有长度限制吗?如果有限制是多少?答:String底层用的char [] 数组,长度函数返回是int类型,因此理论上最大长度是Integer.MAX_VALUE public int length() { return value.length; }理论上是这么多,但是字段串还要放到常量池,因此还受到常量池的规范限制,实际上最大长度是65534个长度。但是我们可以通过StringBuilder构造一个长度大于65534的字符串,然后传给String对象
2021-10-10 18:20:07
207
原创 字符串拼接
1、从字符串拼接学习字节码分析public class JvmTest { public void test() { String s4 = new String("hel") + "lo"; }}先反汇编,到class文件所在目录打开控制台执行javap -c 类名$ javap -c JvmTest警告: 二进制文件JvmTest包含com.chen.base.jvm.JvmTestCompiled from "JvmTest.java"public cl
2021-10-09 17:28:38
282
原创 集合接口的一点总结
1、Queue 队列1.1 queue类图queue是java中的队列,可以实现队列特性,即:先进先出,先进先出这里就说明了要从队列中移除元素,只能从头部移除,因为要保证先进先出1.2 api介绍每个方法都有一个抛出异常(新增时空间不足、为空时获取元素),一个不抛出异常方法描述add向插入数据,继承自Collectoin,在容量已满的情况下,会抛出IllegalStateException异常offer在容量已满的情况下仅仅返回false不抛出异常remove
2021-10-09 16:50:23
106
原创 包装类常量池
环境:jdk1.81. Integer常量池默认的范围范围:[-128,127],Integer内部有个缓存池,最小值-128是固定的,最大的值127是可以调整的,看源码知道,最大值是和integerCacheHighPropValue有关,这个值是可以通过java.lang.Integer.IntegerCache.high属性指定,实际测试System.setProperty("java.lang.Integer.IntegerCache.high","300")不生效,使用-XX:AutoBoxC
2021-10-09 16:01:52
170
原创 mysql8+docker实现主从复制+mybatis读写分离
基于mysql8+docker搭建的主从复制1、mysql主从复制1.1 搭建主从复制目的?1.2 使用docker搭建基于mysql8的主从复制2、使用mybatis-plus实现读写分离2.1 参考文档2.2 java工程2.3 数据库设置2.4 测试通过java读写分离是否成功2.5 、测试代码地址1、mysql主从复制1.1 搭建主从复制目的?为了实现读写分离,解决数据库性能问题,读写分离中,“读”的数据是从哪里来呢?其实他是从“写”库copy过来的1.2 使用docker搭建基于mys
2021-09-30 11:40:38
299
原创 java动态代理
1、动态代理参考1.1 动态代理使用的流程创建代理对象的接口 /*Params: loader – the class loader to define the proxy class interfaces – the list of interfaces for the proxy class to implement h – the invocation handler to dispatch method invocations to */
2021-09-29 14:18:08
110
原创 java对象创建过程
1、在类中本地变量引用自身类,会引发的问题public class BaseFormBean { private BaseFormBean baseBean = new BaseFormBean(); { String bar = "非静态代码块中字段"; } public BaseFormBean() { String foo = "构造方法中的字段"; System.out.println("构造方法被调用.");
2021-09-22 11:31:48
129
转载 Linux开机启动自定义服务
1. 以redis为例在/etc/systemd/system/新建一个文件vi /etc/systemd/system/redis.service文件写入以下内容,ExecStart和Description相应位置的内容改成自己的。[Unit]Description=redis-serverAfter=network.target[Service]Type=forkingExecStart=/usr/local/redis/src/redis-server /usr/local
2021-08-23 10:35:38
188
原创 华为云CDN的初次实践总结
文章目录1、什么是CDN?2、CDN应用场景2.1 网站加速2.2 文件下载加速2.3 点播加速2.4 全站加速3、CDN加速原理3.1 **CDN节点无缓存场景**3.2 CDN节点有缓存场景4、如何使用华为云CDN?5、问题1、什么是CDN?CDN(Content Delivery Network,内容分发网络)是构建在现有互联网基础之上的一层智能虚拟网络,通过在网络各处部署节点服务器,实现将源站内容分发至所有CDN节点,使用户可以就近获得所需的内容。CDN服务缩短了用户查看内容的访问延迟,提高了用
2021-08-12 16:06:42
930
原创 elementUI下拉框分页加远程搜索组件封装
<template> <el-select v-model="copyValue" :disabled="disabled" filterable clearable remote @clear="selectClear" placeholder="请选择" @change="updateValue"
2021-08-04 17:51:45
1255
3
原创 RabbmitMQ学习
1.1 路由模式中的routeKey作用?刚入门学习时,感觉routekey是脱裤子放屁,exchange要是想个queue发消息直接绑定queue不就完了了吗?搞一个routekey给我的感觉是没啥用,不知道其他刚学的朋友有没有这个疑问。其实它是有用的,如下图是一个简单的路由模式,exchange(路由,蓝色的部分)绑定了两个队列,假如有一个消息,生产者希望只有队列1可以消费它,那么此时routeKey就派上用场了,生产者在发消息时附带一个routeKey,则消息到了路由那里,它就会根据事先绑
2021-07-23 10:34:22
179
原创 内网穿透工具推荐
背景公司有内网服务器(可以访问外网,只是没有公网IP的那种),上面部署了很多服务,有时回到家想调试代码,就访问不了内网服务器上的服务,因此想办法把内网服务器上的给暴露在公网。解决方法使用公司VPN,让IT的把你这个内网服务器添加到VPN里面,然后在家用VPN访问。这种方式毕竟有求于人,我司的流程多,各种权限很烦,所以我放弃了。使用内网穿透工具frp——强烈推荐frpfrp源码地址环境准备一个有公网IP的服务器,推荐使用云服务器一个内网服务器(ip地址一般是192.168.xxx),但
2021-07-21 14:07:00
827
原创 springboot项目debug启动慢
原因开启了方法断点,启动时idea会有提示Method breakpoints may dramatically slow down debugging,意思就是在方法上打了断点会导致启动很戏剧性的变慢。解决方法去掉方法断点,就是菱形标记的那种断点...
2021-07-21 13:51:12
1139
原创 Manjaro(Arch)软件包降级
1. 降级包有时太新的包会有bug,我们希望降级到更老版本的包,并且降级后我们希望下次检查更新的时候跳过此包的检查。2.解决方法安装downgrade程序```sudo pacman -S downgrade``降级sudo DOWNGRADE_FROM_ALA=1 downgrade xxx包注意DOWNGRADE_FROM_ALA=1一定要按照我上边这样写,不能单独export DOWNGRADE_FROM_ALA=1设置忽略升级的包第二步会让你选择更新的时候是否要忽略更新,选择y的
2021-07-16 10:39:29
1351
使用oauth2做用户中心管理系统的疑问
2022-11-02
服务端的jwt token是如何校验的?
2022-10-25
springwebsocket和http的区别是啥?
2021-07-14
实时大看板如何开发?
2021-07-02
WebRTC中,如何区分不同的流?
2020-11-02
Linux (Manjaro最新)下webstorm使用git提交卡死
2020-10-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人