- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 Synchronized极简介绍「性质原理篇」
Synchronized性质可重入可重入指的是同一线程的外层函数,获得锁之后,内层函数可以再次获取。说人话就是:如果一个线程拿到了一把锁,一旦得到锁之后就可以继续使用,外层函数获得锁之后内层函数可以继续使用这把锁。如果是不可重入的,一旦拿了锁之后如果还想继续使用,需要先释放再重新竞争获得锁。优势避免死锁,提升封装性关于避免死锁可以举个例子,如果有两个同步方法,方法一需要调用方法二。假设一个前提条件是Synchronized不可重入的,那么在方法一得到锁开始执行的时候,由于需要调用方法二,而调
2021-10-31 15:24:38
132
原创 Synchronized简单介绍「用法篇」
Synchronized的两种用法对象锁包括方法锁(默认锁对象为this即当前实例对象)和同步代码块锁(自己指定锁对象)类锁指Synchronized修饰静态的方法或指定锁为Class对象示例无同步效果public class DemoCode1 implements Runnable { private static DemoCode1 instance = new DemoCode1(); /** * When an object implementing in
2021-10-31 14:20:55
240
原创 JAVA SPI机制简单介绍
什么是SPISpringBoot的自动装配机制中其实就是通过SPI机制去实现的,为了更深入的了解SpringBoot的自动装配机制,故需要对Java的SPI机制作一定的了解。SPI 全称为 Service Provider Interface,是一种服务发现机制,这里所说的服务发现机制与微服务中所描述的服务发现不是同一个东西,不要将其混淆了。SPI通过ClassPath路径下的META-INF/services文件夹查找文件,自动装配文件里所定义的类。这一机制为很多框架提供了扩展的可能,比如在Dubb
2021-10-04 03:00:31
276
原创 Mac OS下安装homebrew、sshpass,永久保持alias
Mac OS下安装homebrew运行命令/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择中科大镜像速度较快通过Homebrew安装sshpass创建 sshpass.rb 文件创建 sshpass.rb 文件,文件内容为:require 'formula'class Sshpass < Formula url 'http://sourceforg
2021-03-18 16:53:05
865
原创 Swagger解决Token和中文标签的配置
依赖引用优势解决了中文tags时无法展开的BUG一键设置全部接口的Authorize<properties> <swagger.version>2.9.2</swagger.version></properties><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui
2020-07-26 17:49:00
515
原创 Springboot+SpringSecurity结合JWT实现认证和鉴权
Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架。Spring Security和Shiro也是当前广大应用使用比较广泛的两个安全框架。
2020-07-26 17:05:12
2217
2
原创 Springboot自定义Starter、配置读取和工具类构建
创建Springboot应用命名规范Spring官方建议命名规则为:官方的Starter命名为:spring-boot-starter-XXXXXX非官方的Starter命名为:XXXXXX-spring-boot-starter项目结构Spring官方建议一个Starter应包含两个模块,其中一个用于AutoConfiguration,另一个用于实现业务。为了方便项目搭建,也可以直接使用一个模块。POM依赖SpringbootStarter与普通的Springboot项目不同,其依赖于其他
2020-07-18 01:35:53
2568
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人