随笔分类 - Java
摘要:
目录 基础语法 字段说明 特殊字符说明 常用时间表达式 业务场景案例 复杂表达式示例 注意事项 在线工具 基础语法 Quartz Cron表达式由6个字段组成(从左到右): 秒 分钟 小时 日期 月份 星期 * * * * * * 字段范围 字段 允许值 允许的特殊字符 秒 0-59 , - * /
阅读全文

摘要:
一、 背景 在 Java 应用开发中对象之间的转换(如 DTO 与 Entity 的互转)是一项频繁且琐碎的任务。MapStruct 框架极大地解放了开发者的生产力。它通过在编译期生成类型安全、高性能的映射代码,避免了手动编写大量样板代码的繁琐,也规避了其他反射式框架(如 Apache BeanUt
阅读全文

摘要:
深入理解 Spring Boot 的 @AutoConfiguration 注解 Spring Boot 凭借其“约定优于配置”的理念,极大地简化了 Spring 应用的开发过程。其核心特性之一便是自动配置(Auto-configuration),它能够根据项目 classpath 中的依赖以及开发
阅读全文

摘要:
在 Ngbatis 中解析 xml 的工具是 Jsoup,因为之前没有接触过,在这里简要的介绍和编写一下。 查了一些资料,Jsoup 似乎用作爬虫和解析 HTML 的场景比较多, 但是 XML 是一样的,同样是将页面解析为一个 DOM 树,然后使用 Jsoup 提供的方法来查询。因为 Jsoup 的
阅读全文
![[Ngbatis源码学习] Ngbatis 源码阅读之 Jsoup 简单使用说明](https://img2024.cnblogs.com/blog/1456590/202406/1456590-20240613000321078-2011834824.png)
摘要:
先说结论。 线程池的创建分为两种: Executors ThreadPoolExecutor Executors 是一个线程池的工具类,而 ThreadPoolExecutor 是 Executors 的具体实现。ThreadPoolExecutor 是 Executor 接口的一个实现,是线程池的
阅读全文

摘要:
在学习Ngbatis的源码时,看到了有关xml文件的加载,涉及到了资源的加载,对相关知识进行总结与整理。 1. 相关类 Resource AbstractResource ResourceLoader DefaultResourceLoader ResourcePatternResolver Pat
阅读全文
![[Ngbatis源码学习][Spring] Spring 的资源管理 ResourceLoader](https://img2023.cnblogs.com/blog/1456590/202312/1456590-20231217020635792-1213331234.png)
摘要:
Ngbatis源码阅读之连接池的创建 1. NebulaPool的创建 NgbatisBeanFactoryPostProcessor 这个类实现了 BeanFactoryPostProcessor 后置处理器,Ngbatis 连接池的创建就在 postProcessBeanFactory 中实现。
阅读全文
![[Ngbatis源码学习]Ngbatis源码阅读之连接池的创建](https://img2023.cnblogs.com/blog/1456590/202312/1456590-20231206232655034-1501014385.png)
摘要:
关于Maven的生命周期与命令 工作的时候对Maven的install和package的使用产生了一些疑问,干脆将Maven的整个生命周期都复习总结一遍。 先看下在IDEA中Maven的生命周期节点: clean clean是清理命令,相当于执行了 mvn clean 命令。 清理当前工程编译后生成
阅读全文
![[Maven]关于Maven的生命周期与命令](https://img2023.cnblogs.com/blog/1456590/202312/1456590-20231201161038217-1095917704.png)
摘要:
由BeanFactoryPostProcessor想到 在看Ngbatis源码时看到了对BeanFactoryPostProcessor后置处理器的使用,对其的使用并不是很了解,在此做一些学习和总结。 1. 相关类 BeanFactoryPostProcessor BeanDefinitionReg
阅读全文
![[Ngbatis源码学习][SpringBoot] 由BeanFactoryPostProcessor想到](https://img2023.cnblogs.com/blog/1456590/202311/1456590-20231130020030148-246616215.png)
摘要:
ApplicationContextInitializer接口类的使用和原理解读 在看Ngbatis源码的过程中,看到了自定义的ApplicationContextInitializer实现类,对ApplicationContextInitializer接口不是特别的理解,所以趁此机会总结下对其的理
阅读全文
![[Ngbatis源码学习][SpringBoot] ApplicationContextInitializer接口类的使用和原理解读](https://img2023.cnblogs.com/blog/1456590/202311/1456590-20231125024435811-2133354398.png)
摘要:
关于maven pom文件的packaging属性 前几天在调试源码运行程序的时候,因为将项目中pom文件的packaging属性用错导致源码包无法引入使用而报Bean注入错误,在此进行总结整理记录。 packaging是maven的pom.xml中的一个标签,用于指定maven项目的输出格式,也就
阅读全文
![[SpringBoot][Maven]关于maven pom文件的packaging属性](https://img2023.cnblogs.com/blog/1456590/202311/1456590-20231124133811024-193449694.png)
摘要:
format string is malformed java 最近在做代码审查,发现很多在使用 String.format 的时候遇到了IDEA报的 Format string 'xxx' is malformed 警告。 顾名思义,错误是标识字符串格式不正确,也就是说由于使用了格式不正确的字符串
阅读全文
![[Java]format string is malformed java](https://img2023.cnblogs.com/blog/1456590/202311/1456590-20231115095318459-97709753.png)
摘要:
GC日志解读解析 示例代码 package jvm.test1; import java.util.Random; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.LongAdder; /** * GC
阅读全文
![[JVM]GC日志解读解析](https://img2023.cnblogs.com/blog/1456590/202310/1456590-20231022235406182-1142968503.png)
摘要:
关于swap的理解 概念 swap就是内存交换的意思。 计算机内存分为物理内存和虚拟内存。物理内存就是计算机实际内存的大小;虚拟内存是磁盘空间里开辟出一部分,是虚拟出来的内存空间,所以也叫磁盘缓存。 虚拟内存使得计算机在内存不够的情况可以得到部分解决。 程序运行的时候会在虚拟内存与物理内存之间进行替
阅读全文
![[JVM]关于swap的理解](https://img2023.cnblogs.com/blog/1456590/202310/1456590-20231009183844320-929464779.png)
摘要:
BigDecimal与Double的区别和使用场景 背景 在项目中发现开发小组成员在写程序时,对于Oracle数据类型为Number的字段(经纬度),实体映射类型有的人用Double有的人用BigDecimal,没有一个统一规范,为此我在这里总结记录一下。 一般说到BigDecimal与Double
阅读全文
![[Java]BigDecimal与Double的区别和使用场景](https://img2023.cnblogs.com/blog/1456590/202309/1456590-20230923152338096-1088013355.png)
摘要:
SpringMVC关于@RequestBody加与不加的区别 前两天在做项目的时候遇到了这样一个问题,小组成员为了方便做接口测试,给Controller控制器上加了@RequestBody注解,但是前端请求接口时报错: org.springframework.web.HttpMediaTypeNot
阅读全文

摘要:
EventBus是Guava中的一个处理组件间通信的事件总线,是观察者模式的一种实现。相比于MQ更加简洁,轻量,使事件生产者和事件消费者实现解耦分离。
阅读全文

摘要:
# Spring 6.0源码解析之@Configuration 首先写一个启动代码: ```java public class ConfigurationAnnotationTest { private static final Logger LOGGER = LoggerFactory.getLo
阅读全文
![[Spring 6.0源码解析] @Configuration注解源码解析](https://img2023.cnblogs.com/blog/1456590/202305/1456590-20230524021616687-734727718.png)
摘要:
@Configuration 标注在类上,启动 Spring 会自动扫描@Configuration注解的类,将其注册到IOC容器并实例化bean对象。如果在@Configuration注解的类中使用@Bean注解某个类对象的方法,Spring也会自动将注解了@Bean的方法注册到IOC容器,并进行
阅读全文
![[Spring6.0源码解析]简述@Configuration注解](https://img2023.cnblogs.com/blog/1456590/202304/1456590-20230411021255465-1682220210.png)
摘要:
Junit单元测试时取不到本地文件问题 问题 当使用Junit进行单元测试时,遇到了以下问题: 2022-10-24 16:13:19.902 [main] ERROR zonetop.gisboot.core.common.utils.FileReaderUtil:94 - ex=java.io.
阅读全文
![[Spring]Junit单元测试时取不到本地文件问题](https://img2022.cnblogs.com/blog/1456590/202210/1456590-20221025152020129-223769329.png)