Java
文章平均质量分 72
分隔符
加倍努力中
不努力就当个废柴
展开
-
窥探系列之Mybatis-plus XML分页查询
com.baomidou.mybatisplus.plugins.PaginationInterceptor 该插件拦截sql,如果searchCount=true,则使用sql解析包jsqlparser根据原sql生成count语句,另外关键。searchCount字段控制是否查询总记录数。原创 2023-08-07 22:33:32 · 1718 阅读 · 0 评论 -
Spring窥探系列之Bean生命周期(100%GPT生成版)
该接口的作用是在 Spring 容器完成 Bean 实例化和属性注入之后,但是在调用 Bean 的初始化方法之前和之后,对 Bean 实例进行自定义的初始化和销毁操作。该类是 Spring Bean Factory 的一个抽象实现,提供了创建 Bean 对象、属性注入、初始化和销毁等方法的默认实现,可以用于定制自己的 Bean Factory 实现。可以在该方法中自定义 Bean 对象的销毁逻辑。: 该方法在 Bean 对象实例化之前被调用,可以在该方法中返回一个代理对象来替代原始的 Bean 对象实例。原创 2023-07-12 11:07:13 · 727 阅读 · 1 评论 -
窥探系列之@Value注入
AutowiredAnnotationBeanPostProcessororg.springframework.beans.factory.support.AbstractBeanFactory#resolveEmbeddedValueorg.springframework.beans.factory.support.DefaultListableBeanFactory#doResolveDependencyorg.springframework.beans.factory.annotation.Au原创 2023-07-11 23:54:54 · 166 阅读 · 0 评论 -
窥探系列之Mybatis-plus 参数名解析
同时,还会使用一个计数器变量 i,用于生成使用默认命名规则的参数名称,这些参数名称以 “param” 开头,并以数字结尾,例如 “param1”、“param2” 等,然后添加到Map中。如果参数 object 是数组类型,则与集合类型类似,也会创建一个 ParamMap 对象,并会添加一个名为 array 的键,对应的值为数组对象。然后,获取方法的所有参数类型和注解,以及参数数量。接着,对于每个参数,通过遍历其注解,获取该参数的名称,如果没有找到 @Param 注解,就使用默认的名称。原创 2023-06-24 00:28:56 · 1172 阅读 · 0 评论 -
窥探系列之Mybatis-plus BaseMapper实现
我们知道,mybatisplus的BaseMapper接口中提供了一些如updateById的方法,框架本身已经实现了这些CRUD功能,基本的CRUD我们就没必要写sql,直接使用java语法就能对数据进行操控,很方便。那么这些功能是如何被实现的呢?这是我研读源码的动机。原创 2023-06-21 00:28:27 · 1650 阅读 · 1 评论 -
窥探系列之多数据源切换
因此,在事务中使用@DS注解时,可能会出现数据源切换失效的情况,即在事务中切换数据源后,该数据源可能会被后续的操作覆盖掉,导致数据源切换失效。如果使用的是DataSourceTransactionManager事务管理器,那么在事务开始时,该事务管理器会获取一个新的连接,并将该连接绑定到当前线程上。具体来说,当一个事务开启时,事务管理器会获取一个数据库连接,并将该连接和当前线程进行绑定,以便在事务管理器操作数据库时使用该连接。当事务结束后,事务管理器会释放该连接,并将该连接和当前线程的绑定解除。原创 2023-06-13 19:21:54 · 673 阅读 · 0 评论 -
窥探系列之数字证书
一是证书中包含证书的归属人信息,比如域名等,所以即使中间人也去申请CA证书,但是浏览器能够判断收到的证书的归属人不是期望的;二是如果中间人使用自己生成的证书,当浏览器使用CA根证书的公钥去验证中间人证书会失败。篡改证书,使用CA根证书校验时会失败。原创 2023-06-13 11:57:19 · 1004 阅读 · 0 评论 -
从增强器Advisor窥探AOP原理
可以看到,在代理时Spring将所有拦截器添加到调用链List中,然后封装到MethodInvocation对象中。这段代码实现了 Spring AOP 框架中获取一个方法的所有拦截器和动态拦截通知的逻辑。JdkDynamicAopProxy实现了InvocationHandler接口。本来以为Spring嵌套代理,其实只创建了一个代理对象。递归调用拦截器,最后执行被代理类的方法。原创 2023-06-12 16:20:39 · 772 阅读 · 0 评论 -
【优秀博客】
优秀博客链接收集原创 2022-08-16 14:23:19 · 113 阅读 · 0 评论 -
第25条:列表优先于数组
第25条:列表优先于数组看到这个标题的时候,我有个疑惑:是不是优先使用列表,能用列表就尽量用列表吗?我觉得,之所以说列表优于数组,应该是在某些语法设计方面,列表有比较大的优势。但是要具体问题具体分析,数组也有自身的优势(对于固定长度的序列,性能更加高),而且在某些情况下,列表的所谓的优势并不能发挥。数组是协变且可以具体化的;泛型是不可变的且可以被擦除的(不可具体化的)。**协变与不可变类型数组是协变类型,指继承关系的。泛型是不可变类型(也就是final类型),没有继承关系。无限制通配符类型是一个原创 2020-11-28 23:13:02 · 545 阅读 · 1 评论 -
显式锁
显式锁ReentrantLock并不是一种替代内置加锁的方法,而是当内置加锁机制不适用时,作为一种可选择的高级功能。Lock与ReentrantLockLock提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有加锁和解锁方法都是显式的。public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); b原创 2020-11-28 16:33:57 · 158 阅读 · 0 评论 -
输出java doc 显示编码失败
在“其他命令行参数(other command line arg)”里添加:-encoding utf-8 -charset utf-8以UTF-8格式编码,浏览器以UTF-8解码。原创 2020-10-24 21:21:27 · 110 阅读 · 0 评论