自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Spring 源码阅读 | 模式注解

什么是Spring模式注解?模式注解是如何生效的?

2022-01-04 09:16:03 265

原创 Spring @Autowired 属性注入过程分析

@Autowired 到底是如何进行属性注入的,为什么会发生 bean 冲突,按类型注入是什么鬼?

2021-12-16 11:42:14 1058

原创 Java 源码阅读 | 数字类型

NumberNumber 是 Byte, Double, Float, Integer, Long, Short, BigDecimal, BigInteger 这几个数据类型的父类,只要继承了 Number 类型,就可以在这几个类型之间互相转换。Integer i = new Integer(200);float v = i.floatValue();long l = i.longValue();byte b = i.byteValue();double d = i.doubleValue()

2021-12-12 18:08:28 629

原创 iTerm2的配置不生效的可能原因

如果你装了oh-my-zsh,iTerm2启动不再调用配置文件.bash_profile,而是直接调用.zshrc文件,这是如果你还把配置写在.bash_profile中,则不会失效。此时你有两种解决方法:把配置直接写在.zshrc中配置还是写在.bash_profile中,但是要在.zshrc中添加一行source ~/.bash_profile...

2021-03-11 20:40:11 2041

原创 Mac系统中Python安装路径

1、在/System/Library/Frameworks/Python.framework/Versions/这是Mac系统自带的Python版本2、在/Library/Frameworks/Python.framework/Versions/这个3.9是我自己官网下载装上去的,这是面向你电脑的全体用户的3、在/usr/local/Frameworks/Python.framework/Versions/这是用brew命令安装的最后,提一下Mac系统的环境变量,加载顺序为:/etc/p

2020-12-03 13:48:42 4284 1

原创 并发容器之ConcurrentHashMap

看你简历里写了 HashMap,那你说说它存在什么缺点?线程不安全迭代时无法修改值那你有用过线程安全的 Map 吗?有,回答在哪用过。没有,不过我了解过。那你说说它们的实现。HashtableHashtable 本身比较低效,因为它的实现基本就是将 put、get、size 等各种方法加上 synchronized 锁。这就导致了所有并发操作都要竞争同一把锁,一个线程在进行同步操作时,其他线程只能等待,大大降低了并发操作的效率。Collections#Synchroniz..

2020-05-04 19:30:15 1720 1

原创 Spring Boot监听器解析

监听器的注册方法今天我们来说说 Spring Boot 的监听器,其实上一次给大家留了个坑,还记得下面这个构造方法吗?当时我们猜测 Listener 是否也和 Initializer 一样,事实上,注册监听器的过程是一样的,所以说用法和初始化器一模一样,但是我们今天的重点不是监听器的注册过程,而是监听器的实现机制。不过我觉得还是有必要列举一下监听器的使用。1、定义在 spring.factories 文件中,被 SpringFactoriesLoader 发现注册(工厂加载机制)注意到上面的

2020-04-23 09:49:18 600 2

原创 Spring Boot初始化器解析

今天,我们来讨论一下 Spring Boot 初始化器的执行过程。Spring Boot 有三种方式定义初始化器,下面逐一分析。1、定义在 spring.factories 文件中,被 SpringFactoriesLoader 发现注册(工厂加载机制)首先我们自定义一个类实现 ApplicationContextInitializer。public class DemoInitializer implements ApplicationContextInitializer<Configura

2020-04-19 21:19:59 392

原创 出现死锁问题怎么解决?

什么是死锁每个线程都在等待对方线程释放锁,然而谁都不主动释放锁,结果就构成死锁。死锁的影响在不同系统中是不一样的,这取决于系统对死锁的处理能力。数据库:检测并放弃事务。JVM :无法自动处理。发生死锁的例子经典死锁public class DeadLock implements Runnable { int flag = 1; static Object lock1 = new Object(); static Object lock2 = new Object()

2020-04-14 10:39:09 1220

原创 哲学家就餐问题及解决方法

问题描述哲学家就餐问题(Dining philosophers problem)是在计算机科学中的一个经典问题,用来演示在并发计算中多线程同步时产生的问题。在1971年,著名的计算机科学家艾兹格·迪科斯彻提出了一个同步问题,即假设有五台计算机都试图访问五份共享的磁带驱动器。稍后,这个问题被托尼·霍尔重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。哲学家就餐问题可以这样表述,假设...

2020-04-14 10:32:28 7620

原创 前后端分离下如何做单点登录

前后端分离的单点登录系统项目说明有两个外部系统想要做单点登录,有一个单点登录认证中心系统 CAS。CAS 采用前后端分离架构,后端使用 Spring Boot,前端使用 nginx 做代理。环境配置hosts127.0.0.1 www.cas.com127.0.0.1 www.app1.com127.0.0.1 www.app2.comnginxserver { li...

2020-04-14 10:26:18 4141 1

原创 如何提交项目到Maven中央仓库(图文详解)

sonatype申请账号申请地址: https://issues.sonatype.org/secure/Signup!default.jspa申请完账号之后,登录点击上方create,创建item,Project选择Community Support - Open Source Project Repository Hosting (OSSRH)Issue Type选择New Pro...

2019-04-24 17:14:45 4239 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除