- 博客(19)
- 收藏
- 关注
原创 2022 面试宝典
其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ 可能会很麻烦,但是你现在用了 MQ 之后带给了你很多的好处。先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负
2022-07-05 22:38:30 2310
原创 一次由于SecureRandom使用不当引起的线程阻塞
问题起因一个对外提供的接口,中间需要调用第三方接口,涉及到三方机密问题,其中使用到了安全随机数之前的写法如下public static String randomCode() { Random r = new Random(); StringBuilder str = new StringBuilder(); for (int i=0;i<6;i++){ ...
2020-05-06 15:24:30 1649
原创 如何在springboot中注册severletFilter
问题起源之前好好的项目突然之间访问不了,在postman测试所有接口都显示AES解密失败,推测可能是请求接口时加入了解密,查看配文件发现多了一个配置xxx.cipher.enabled=true注释写的是启用加密如是就去探究了一下这个加密是如何实现实现发现了这个类,可以看到当配置的值value为true时这个配置类就会生效(@ConditionalOnProperty满足条件时配置类...
2020-04-14 20:59:27 212
原创 docker常用命令
一、CentOS7常用命令https://blog.csdn.net/qq_34916059/article/details/79552397https://blog.csdn.net/qq_40087415/article/details/79367151nohup command & 后台执行某操作tail -200f XXX 查看日志systemctl stop fir...
2020-04-03 15:13:44 320
原创 自定义阻塞队列
自定义阻塞队列这个自定义阻塞队列基本就是jdk阻塞队列的实现public class MyBlockQueue<E> { /** * 锁 保证并发安全 */ private ReentrantLock lock = new ReentrantLock(); /** * 队列元素 */ private fina...
2019-09-25 21:04:32 373
原创 线程池的使用和工作原理
开篇本文将从以下三个方面介绍线程池线程池的七个参数线程的使用自定义一个线程池一个任务提交会经历哪些步骤JDK线程池是如何保证核心线程一直存活的线程池的七个参数java源码/** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * ...
2019-09-24 22:26:59 225
原创 ReentrantLock的实现原理
ReentrantLock的加锁时序图ReentrantLock类图分析的几个问题ReentrantLock是如何实现加锁的当锁被其他线程占用时当前线程是如何处理的带着这两个问题分析一下ReentrantLock加锁过程ReentrantLock的加锁过程很简单就是采用CAS操作将锁标记设置成有锁状态源码如下final void lock() { //当没有线程占用锁资源...
2019-08-04 20:30:17 432
原创 一段代码查看线程状态
DEMOpackage thread;import java.util.concurrent.TimeUnit;public class ThreadStatusDemo { public static void main(String[] args) { new Thread(new Runnable() { public void ru...
2019-07-29 22:02:47 407
原创 责任链设计模式
责任链设计模式概念场景利用责任链设计模式实现责任链设计模式优化结束语概念责任链(chain of responsibility)模式很像异常的捕获和处理,当一个问题发生的时候,当前对象看一下自己是否能够处理,不能的话将问题抛给自己的上级去处理,但是要注意这里的上级不一定指的是继承关系的父类,这点和异常的处理是不一样的。所以可以这样说,当问题不能解决的时候,将问题交给另一个对象去处理,就这样一直...
2019-07-25 23:19:36 172
原创 ThreadLocal
ThreadLocal是什么ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。通常我们在使用jdbc做数据库连接时是需要手动控制事物的,这个时候就要保证数据库连接connection在同一个线程中的唯一性,而connection又不是单...
2019-03-17 18:35:51 156
原创 redis入门学习(比较全面)
一、 安装在centOs下安装redis首先需要安装gcc依赖用于编译解压后的redis就把gcc当成c语言编译器, g++当成c++语言编译器用就是了yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake下载redis压缩包并且解压编译$ wget http://download.redis.io/rele...
2019-02-26 01:21:32 1472
原创 Spring注解式开发(六):五分钟搞定Spring AOP开发
AOP功能AOP(Aspect Oriented Programming):面向切面编程 指在程序运行期间动态的将某段代码切入到指定方法指定位置运行的编程方式进行aop开发时首先要导入spring aop的依赖<dependency> <groupId>org.springframework</groupId> <artifactId...
2019-01-20 19:35:38 283
原创 Spring注解式开发(五):属性赋值和自动装配
引言上篇文章介绍 的是spring底层对BeanPostProcessor的使用,今天介绍一下bean属性的赋值和自动装配@Value注解@Value注解可以写直接的数值也可以使用SPEL表达式#{ }$ {}去取配置文件中的值${}去除配置文件中的值在根目录下创建一个person.propertiesZHANSAN.name=false创建配置类@Configuration...
2019-01-13 19:36:13 319
原创 Spring注解式开发(四):Spring底层对BeanPostProcessor的应用
引言上篇文章介绍了BeanPostProcessor的原理,这周加了一周的班,周末静下心来继续spring注解式开发的学习。Spring提供了哪些BeanPostProcessorspring为我们提供了很多BeanPostProcessor,使用开发工具可以看到下图,我们就挑几个介绍一下这只是其中的一部分1.ApplicationContextAwareProcessor的使用Ap...
2019-01-12 15:50:40 307
原创 Spring注解式开发(三):BeanPostProcessor的工作原理
BeanPostProcessor的工作原理本次通过debug的方式追踪BeanPostProcessor的工作原理容器启动时的方法调用栈首先进入 AnnotationConfigApplicationContext方法,也就是创建容器的方法,通过方法的注释可知道该方法是使用给定的配置类创建一个新的AnnotationConfigApplicationContext,并自动刷新上下文/*...
2019-01-06 20:19:53 834
原创 Spring注解式开发(二):组件生命周期
引言上篇文章介绍的是spring注解式开发的组件注入,这篇文章将介绍一个bean组件的生命周期内我们可以对bean组件做什么做什么。使用场景(这里只是举一个简单的例子):可以通过bean的初始化方法来指定数据源的创建也可以通过bean的销毁方法指定数据源的连接关闭也可以通过bean的销毁方法指定数据源的连接关闭1.在@Bean标签中指定初始化和销毁方法在要注入放入bean组件中定义...
2019-01-06 16:11:56 563
原创 Spring注解式开发(一):组件注册
Spring注解式开发(一):组件注册引言使用配置类代替配置文件1.定义一个配置类2. 加载启动Spring配置类使用注解直接注入组件使用@ComponentScan指定Spring要扫描的组件Spring关于组件的其他注解@Scope设置bean是单例还是多例@Lazy懒加载,只针对单例@Conditional 当满足条件时才加载bean到ioc容器@Import注解快速批量注入bean到ioc...
2019-01-05 16:30:45 275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人