Bulingfeng Blog

「背后的努力决定人生的高度」

生活大爆炸-第一季-第三集

生活大爆炸

I disagree. Love is not a sprint, it’s a marathon. a relentless pursuit that only ends when she falls into your arms or hits you with the pepper spray (防狼喷雾). I’m done with penny. The diet...

SpringBoot常用注解

SpringBoot常用注解

@Import 这个注解的使用条件就式在在使用的这个类上面必须是Spring-context中的bean对象。这个类可以注入你想要的任何类。并且注入的bean名称为class的全类名。 @Conditional以及其派生注解 根据条件进行注解,并且它还有大量的派生注解。 这类注解可以使用在方法上,也可以使用在类上。如果使用在类上,则会根据条件是否把对应的对象给注入到spring上下文...

@Configuration的详细使用

@Configuration的详细使用

在讨论使用@Configuration之前呢,我先说下我使用的相关技术版本号,springboot的版本为:3.1.2;而这个版本对应的spring的版本是6.0; @Configuration的基本使用 我们都知道@Configuration是一个配置的注解,通过这个注解,就是可以把对应的类给注入到spring的context中。比如如下代码: 1 2 3 4 5 6 7 @Conf...

SpringBoot的一些基本特性

SpringBoot的一些基本特性

关于版本号的简化 SpringBoot大大简化了java开发人员的配置,而这就涉及到一些配置的规约。比如当我们想使用springboot的web功能的时候,那么只需要引入: 1 2 3 4 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>...

SpringBoot实现优雅关闭程序

SpringBoot实现优雅关闭程序

介绍 实际的项目发布过程中,免不了要对应用进行停机发布,这个时候如果有一些请求还没有进行处理完,如果你强行进行关闭,会造成用户体验不好,或者一些数据损失。 基于这样的原因,我们需要对应用程序进行优化的关闭(shutdown gracefully) 实现方法 现在SpringBoot已经提供了这方面功能,能够使我们快速的和简单地完成这样的一份工作。我们只需要在application.y...

《思维导图》-东尼.博赞

《思维导图》阅读记录

使用3A方法来进行学习,accept,apply,adapt。如果自己想学习一门技能,首先要找到好的老师和书籍,然后再实施3A的方式来进行学习。 最初的学习者总是会犯一些错误,比如还没有一些基础知识就开始提出问题并且反问(而且有些人还是为了显示自己聪明而这么做),这样的学习形式是错误的。首先你要对一个东西进行了深入了解再提问,这样才能问出来好问题。 ...

Spring中Transactional注解的基本描述

spring事务

Spring中Transactional注解的基本描述 官方文档: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/Transactional.html 在写这个文章的时候多少还是有点感慨的,因为原来自己的学习模...

CountDownLatch和CycliBarrier

CountDownLatch和CycliBarrier

简介 CountDownLatch是线程挨个执行,直到全部完成一组线程的任务。CycliBarrier是线程之间会互相等待,到屏障的时候然后再一起执行任务。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import j...

线程池详解

线程池详解

简介 线程池其实就是为了减少线程的频繁创建和销毁,从而能够使线程得到充分利用,这样就可以提高系统的性能和运行效率。 常见的线程池创建方式 ThreadPoolExecutor 使用Executors来创建各种线程池,比如newFixedThreadPool(int threadNum); 线程池execute运行策略 其实execute和submit执行逻辑都一样...

ConcurrentHashMap详解

ConcurrentHashMap详解

简介 ConcurrentHashMap也是属于读时复制,也就是说当写进去一个元素的时候,同时你去取可能取不出来。相反,如果你删除一个元素的时候,同时写和进行读,可能你能读出来这个元素。这个到底算不算线程安全问题呢? 我的理解是:线程安全问题是造成了数据错误的问题,才能被描述为线程安全问题,上面所说的可以称之为:“数据不一致性”问题,因为你再次读就会得到正确的数据,从数据的角度来看...