
JAVA
文章平均质量分 80
永不秃头小魔王
互联网打工人
展开
-
CyclicBarrier、Semaphore、CountDownLatch、Condition工作流程源码分析
1.CyclicBarrier.wait()方法工作流程。CyclicBarrier内部基于condition,维护一个count变量,每次调用一次wait(),count就会减1,当count为0的时候,会调用trip.signalAll()唤醒所有线程,其中trip是CyclicBarrier内部维护的一个condition变量,并且把count重置为parties(初始值)。2.Semaphore.acquire()方法工作流程。首先说明一下,Semaphore内部也是基于AQS,重写了AQS的原创 2020-05-31 00:26:09 · 229 阅读 · 0 评论 -
spring bean的初始化流程(生命周期)总结
bean的初始化流程大概如下:以下图片来自:https://www.cnblogs.com/javazhiyin/p/10905294.html上面的流程我补充一点哈,在调用BeanPostProcessor接口的postProcessBeforeInitialization方法后,下面会继续调用bean被@PostConstruct注解的方法,然后才会调用afterPropertiesSet()方法(前提是你的bean实现了InitializingBean接口)。下面是我自己的验证的结果:原创 2020-05-24 17:14:02 · 7756 阅读 · 0 评论 -
spring 的事务注解
知识点:1.同一个类的(没有@Transactional注解)A方法调用B方法,(有@Transactional注解)B方法的事务无效。2.A类的B方法调用C类的D方法,那么D方法的事务是有效的。(这里的B方法没有注解,D方法有注解)解决注解失效的方法:@Transactional注解可以作用于哪些地方?@Transactional 可以作用在接口、类、类方法。作用于类:当把@Transactional 注解放在类上时,表示所有该类的public方法都配置相同的事务属性信息。 作用原创 2020-05-23 01:48:31 · 1839 阅读 · 0 评论 -
JAVA itext5生成PDF报告文档
1.引入maven依赖。<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.11</version></dependency><de...原创 2020-05-07 11:27:14 · 744 阅读 · 0 评论