自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 springboot mybatis加载过程

@MapperScan注解使用了@Import(MapperScannerRegistrar.class)修饰,会将MapperScannerConfigurer加入spring,MapperScannerConfigurer扫描接口并将beanClass设置为MapperFactoryBean.class,MapperFactoryBean为接口创建对应的MapperProxyFactory并扫描xml,最终返回MapperProxy实例,执行mapper方法会进入MapperProxy的invoke方法

2025-01-17 09:30:21 414

原创 分页插件原理(PageHelper)

PageHelper.startPage(current, size);方法主要做了两件事:拼装并初始化com.github.pagehelper.Page类将拼装好的Page类存入ThreadLocalpagehelper有一个拦截器PageInterceptor,使用了@Intercepts注解修饰,会对mybatis中的查询接口做拦截增强,拦截器中使用了上面提到的ThreadLocal取出Page类做判断,当Page类不为null,才会进入分页操作。

2025-01-16 17:08:16 542

原创 @Intercepts注解原理(mybatis拦截器)

MybatisAutoConfiguration初始化的时候,会在构造函数收集所有实现Interceptor接口的bean,在初始化SqlSessionFactory时,将Interceptor实例数组传入SqlSessionFactoryBean,再存入SqlSessionFactory的Configuration.interceptorChain,当执行mapper接口方法时,会走到InterceptorChain.pluginAll方法,形成类似责任链模式的数据结构,执行的时候按照责任链顺序执行

2025-01-16 16:24:05 265

原创 springboot项目maven打包插件原理

使用java -jar命令运行一个jar文件时,jvm会读取jar文件中的MANIFEST.MF文件,其中的Main-Class属性用来确定应用程序的入口类。maven打包插件的主要作用就是将Main-Class属性写入MANIFEST.MF文件(以及Start-Class属性),并将程序的所有依赖库都一块放到BOOT-INF/lib/目录下,默认JarLauncher为主类,启动时JarLauncher使用反射调用实际的启动类

2024-11-11 11:26:07 1071 1

原创 windows下使用dos窗口java -jar中文乱码

这里已经试过使用-Dfile.encoding=utf-8无效,依旧中文乱码。

2023-11-02 09:02:20 210

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除