SF
code-craft
code-craft
注册登录
关注博客
注册登录
主页
关于
RSS
聊聊druid的keepalive机制
codecraft
2023-10-01
阅读 18 分钟
805
DruidDataSource的init方法在keepAlive的时候触发创建连接,当createScheduler不为null时(默认为null)执行submitCreateTask,否则执行emptySignal
聊聊druid的DestroyConnectionThread
codecraft
2023-09-30
阅读 8 分钟
487
DruidDataSource的init方法会执行createAndStartDestroyThread;而createAndStartDestroyThread在destroyScheduler不为null的时候会定时(timeBetweenEvictionRunsMillis)调度destroyTask,不过destroyScheduler默认为null;同时它还启动了DestroyConnectionThread
聊聊druid连接池的监控
codecraft
2023-09-29
阅读 11 分钟
747
序本文主要研究一下druid连接池的监控initcom/alibaba/druid/pool/DruidDataSource.java {代码...} DruidDataSource的init方法会执行registerMbeanregisterMbeancom/alibaba/druid/pool/DruidDataSource.java {代码...} registerMbean会执行DruidDataSourceStatManager.addDataSource(DruidDataSource.this, DruidDataSo...
聊聊druid连接池的参数配置
codecraft
2023-09-28
阅读 10 分钟
1.2k
druid-1.2.11-sources.jar!/com/alibaba/druid/pool/DruidDataSourceFactory.java
聊聊druid的handleException
codecraft
2023-09-27
阅读 10 分钟
532
DruidPooledConnection的prepareStatement会catch住SQLException然后执行handleException
聊聊druid的return行为
codecraft
2023-09-26
阅读 8 分钟
491
close方法先从holder获取当前的dataSource,然后判断ownerThread,若不是同一个线程则设置asyncCloseConnectionEnable为true,若asyncCloseConnectionEnable为true则执行syncClose(这里语义貌似相反),否则执行recycle方法
聊聊druid的borrow行为
codecraft
2023-09-25
阅读 31 分钟
1k
DruidDataSource的getConnection方法内部调用的是getConnectionDirect(maxWaitMillis)
聊聊jedis连接池参数配置
codecraft
2023-09-24
阅读 11 分钟
1.7k
JedisPoolConfig继承了GenericObjectPoolConfig,同时默认配置了testWhileIdle为true(默认为false),minEvictableIdleTime为60s(默认为30分钟),timeBetweenEvictionRuns为30s(默认为-1),numTestsPerEvictionRun为-1(即检测所有空闲连接,默认值为3)
聊聊jedis的testWhileIdle
codecraft
2023-09-23
阅读 14 分钟
1.3k
GenericObjectPool的evict方法在idleObjects不为空的时候会执行evict逻辑,它先通过getNumTests获取每次要对多少个idleObject进行验证,之后循环处理,首先通过evictionPolicy.evict判断是否需要evict,如果是则执行destroy方法,否则判断是否testWhileIdle,若是则先执行activateObject方法,再执行validateObject,如...
聊聊jedis的return行为
codecraft
2023-09-22
阅读 10 分钟
660
RedisTemplate的execute方法先通过RedisConnectionUtils.getConnection获取连接,最后通过RedisConnectionUtils.releaseConnection来归还连接
聊聊jedis的borrow行为
codecraft
2023-09-21
阅读 11 分钟
1.1k
borrowObject方法会开启一个while循环,条件是p为null,也就是要获取到p或者是内部自己跳出循环;idleObjects.pollFirst()从连接池获取,如果为null则执行create,之后是blockWhenExhausted的判断逻辑,如果create出来的为null,则阻塞等待takeFirst或者pollFirst(borrowMaxWaitDuration),如果还是null则抛出NoSuchElem...
Java21的新特性
codecraft
2023-09-20
阅读 26 分钟
3.4k
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java18的新特性Java19的新特性Java20的新特性Java21的新特性Java22的新特性Java23的新特性Java24的新特性序本文...
聊聊jedis连接池对commons-pool的封装
codecraft
2023-09-19
阅读 6 分钟
1.8k
JedisPoolConfig继承了GenericObjectPoolConfig,在构造器里头设置了默认的参数,即testWhileIdle为true,minEvictableIdleTime为60s,timeBetweenEvictionRuns为30s,numTestsPerEvictionRun为-1
聊聊JedisFactory
codecraft
2023-09-18
阅读 17 分钟
691
PooledObjectFactory接口定义了makeObject、destroyObject、validateObject、activateObject、passivateObject方法
聊聊基于maven的springboot的"过时"用法
codecraft
2023-09-17
阅读 4 分钟
547
这种方法呢,感觉是多此一举,用application-{profile}.yml不香吗,感觉是没有用上springboot之前的maven工程的用法
聊聊SpringBootTest的webEnvironment
codecraft
2023-09-16
阅读 7 分钟
581
spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringBootTestContextBootstrapper.java
聊聊admin服务的架构模式
codecraft
2023-09-15
阅读 2 分钟
527
一般而言,一个服务提供的接口有的是C端用的,有的是给B端用的,还有的是给admin用的,对于admin服务该不该访问业务服务的数据库,这里通常会有很多分歧和实践模式。这里给admin服务的定义就是给admin后台系统的前端提供http接口的服务。
聊聊spring事务的REQUIRES_NEW
codecraft
2023-09-14
阅读 10 分钟
640
org/springframework/transaction/support/AbstractPlatformTransactionManager.java
聊聊spring事务的propagation
codecraft
2023-09-13
阅读 9 分钟
628
spring事务定义了Propagation枚举,主要有REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED
聊聊spring的UnexpectedRollbackException
codecraft
2023-09-12
阅读 12 分钟
728
UnexpectedRollbackException继承了TransactionException,一般是事务嵌套,内层事务抛出了异常,外层事务给catch住了,然后试图提交事务报错
聊聊spring的TransactionalEventListener
codecraft
2023-09-11
阅读 12 分钟
3.1k
TransactionalEventListener是EventListener的事务感知版本,默认的是TransactionPhase是AFTER_COMMIT
聊聊TransactionSynchronization的invokeAfterCompletion
codecraft
2023-09-10
阅读 7 分钟
1.2k
org/springframework/transaction/support/TransactionSynchronization.java
聊聊spring的TransactionSynchronizationAdapter
codecraft
2023-09-09
阅读 8 分钟
1.5k
使用TransactionSynchronizationManager.registerSynchronization注册了一个TransactionSynchronizationAdapter,在其afterCommit方法也就是事务提交成功之后执行一些额外逻辑
聊聊springboot的ConfigurationProperties的绑定
codecraft
2023-09-07
阅读 11 分钟
974
org/springframework/boot/context/properties/ConfigurationPropertiesBindingPostProcessor.java
聊聊如何获取PreparedStatement的参数
codecraft
2023-09-06
阅读 12 分钟
1k
PreparedStatement继承了Statement接口,它主要是多定义了一系列的set方法,但是没有定义get方法,只是定义了getParameterMetaData方法返回ParameterMetaData
聊聊ShardingSphere是怎么进行sql重写的
codecraft
2023-09-05
阅读 25 分钟
925
org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
聊聊mysql jdbc的prepareStatement
codecraft
2023-09-04
阅读 22 分钟
1.2k
mysql-connector-java-5.1.21-sources.jar!/com/mysql/jdbc/ConnectionImpl.java
聊聊jasypt的IVGenerator
codecraft
2023-09-03
阅读 11 分钟
2.9k
IVGenerator定义了generateIV及includePlainIVInEncryptionResults方法,它有三个实现类,分别是NoOpIVGenerator、StringFixedIVGenerator、RandomIVGenerator
聊聊jasypt的SaltGenerator
codecraft
2023-09-02
阅读 9 分钟
2.4k
SaltGenerator接口定义了generateSalt及includePlainSaltInEncryptionResults方法,其中generateSalt方法根据指定的长度参数来生成salt,而includePlainSaltInEncryptionResults则返回是否需要将salt包含在加密结果中,通常对于随机生成的需要返回true,对于固定salt的则不需要,它有几类,分别是FixedSaltGenerator、Ze...
聊聊Jasypt的StandardPBEByteEncryptor
codecraft
2023-09-01
阅读 11 分钟
1.1k
Jasypt即Java Simplified Encryption,它主要是简化项目加解密的工作,内置提供了很多组件的集成,比如hibernate、spring、spring-security等
上一页
1
…
More
6
7
8
(current)
9
10
…
More
下一页
上一页
8
(current)
下一页