自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录个人成长历史

个人时间线记录

2021-12-12 22:39:58 643

原创 JAVA中如何知道某项目使用什么数据库类型

最近在写第三方工具的时候,需要判断使用方项目具体使用了什么数据库类型,从而进行不一样的实现逻辑。当然可以让用户在YML中配置说明项目用什么数据库,但用户不一定填写正确。因此需要想其他办法获取到该项目使用什么数据库类型。

2023-08-27 18:30:00 778

原创 @Repeatable的作用以及具体如何使用

最近无意看到某些注解上有@Repeatable,出于比较好奇,因此稍微研究并写下此文章。

2023-08-19 14:11:56 529

原创 Oracle中使用【Interval】对【日期】进行【相加减】,报错 ORA-01839:指定月份的日期无效(Interval的坑)

最近在对某些表进行旧数据的删除,必然是通过【时间】删除之前较为久远的数据,比如1年前,6个月前,7天前的数据等等情况,这个时候的SQL,必然会出现条件:where time < 时间 - 间隔对于oralce来说,当时使用了,一开始自测也好好的,过了几天之后,则报错:ORA-01839:指定月份的日期无效,因此写这篇文章记录一下该事件。

2023-06-10 19:45:00 4125

原创 使用BeanDefinitionRegistryPostProcessor扫描指定包下Bean对象时,@Configuration无法创建内部中@Bean的类

在之前工作中需要设计SDK(第三方jar包),该SDK中是有bean对象的,从而需要考虑该包下的会成为Bean的类要如何被spring扫描到从而创建,因此写了如下文章:设计第三方jar包中有bean对象时,要如何自动加载到被引用的应用中(EnableAutoConfiguration、BeanDefinitionRegistryPostProcessor使用)上文中介绍了三种方式:使用@ComponentScan指定需要扫描路径。

2023-04-01 18:10:10 839 1

原创 设计第三方jar包中有bean对象时,要如何自动加载到被引用的应用中(EnableAutoConfiguration、BeanDefinitionRegistryPostProcessor使用)

如何设计第三方jar包中bean对象,可以很好被引用的项目无感使用

2023-03-12 11:31:12 1007 2

原创 @ConfigurationProperties在方法上的使用

在学习spring的时候,@ConfigurationProperties应该经常被使用到,作用在类上的时候,将该类的属性取值与配置文件绑定,并生成配置bean对象,放入spring容器中,提供给其他地方使用。在工作中,或者看spring内部代码的时候,无意发现@ConfigurationProperties居然还可以用在方法上// targer:可作用在类、方法上 @Target({似乎平时我们都是用在类上的,因此特意写这篇文章记录一下,记录@ConfigurationProperties的使用方式。

2023-02-26 22:45:00 2479 1

原创 @ExceptionHandler处理全局异常的优先级说明

在工作中,遇到使用@RestControllerAdvice与@ExceptionHandler注解进行全局异常错误处理(之前写过文章即设置了全局异常处理方法,又设置了controller层异常处理的方法,优先选择自己的controller层。而在这次工作中,遇到了:在不同包下都设置了全局异常处理的方法,而并不是按照错误类型越精确就使用谁的方法进行处理,因此,特意研究一下,并记录下来。

2023-02-22 22:41:37 3457 3

原创 ObjectMapper转化对象常用方法(转LIst、Map,以及Type、JavaType、constructType的学习)

在工作中,必然少不了JSON转化对象,而一般来说JSON的转化,要么就是在controller层,springboot帮忙转化好了,要么就是简单的常转List、Map等。而在学习Feign时,可以自定义Decoder解析器,对返回报文做个性化处理,但此时对方返回的数据就需要自己将json字符串转为对应的对象了。而在自己转化的时候,发现ObjectMapper提供如下两个方法:一个是class类型的参数,一个是JavaType类型的参数,而该decode方法中,只有Type类型,那到底应该如何操作呢,请看本文

2023-02-07 00:30:08 11808 1

原创 Mybatis中xxx对象无法转化为Optional对象(cannot be cast to java.util.Optional)

在前几天工作的时候,突然发现如下报错:从上述报错信息可以得出:某个对象无法转化为Optional对象。而对应的代码如下:无论从哪里看,都感觉没有任何问题,不经感概到居然还有不能使用Optional的吗?此时,长吸一口烟,压压惊。

2023-02-05 17:59:00 465

原创 java中实现分页的常见几种方式

无论是自我学习中,还是在工作中,固然会遇到与前端搭配实现分页的功能,发现有几种方式,特此记录一下。

2022-12-18 23:19:59 16715 4

原创 MessageFormat的具体使用(格式化消息)

一篇文章搞懂MessageFormat的文本替换方式。

2022-12-17 15:42:57 1129

原创 mybatis中其他数据源也使用XML进行操作(SqlSessionFactory.openSession(Connection connection)方法)

当前在使用springboot+mybatis的时候,通常会先在配置文件中配置好数据源,并在Mapper.xml文件编写好相关SQL,使用mybatis进行对数据库进行所谓的crud操作。有时候会出现一个项目需要跟多个数据源进行相关操作,通常是使用JdbcTemplate对另一个数据源进行crud相关操作,虽也可以实现功能,但将SQL写在类里面,与本数据源将SQL写到了XML文件中,总是感觉格格不入,为了统一项目SQL的存放位置,进而研究了SqlSessionFactory.openSession。

2022-12-07 18:20:54 867

原创 mybatis的xml中<trim>标签的用法

在工作中离不开跟数据库打交道,目前流行的固然是mybatis,在xml中可能会出现where条件需要传入参数才能定下来的sql时候,sql应该怎么写才不会报错呢

2022-11-29 21:53:25 2101 3

原创 idea如何快速找到项目中对应的类(包括源码)

最近在看某些功能的时候,会去看对应的源码,而有时候只知道类名,不知道从哪里进入源码,因此就比较好奇,idea的全局搜索功能为啥无法搜索到jar包(即class文件里面的内容呢),所以记录一下。

2022-11-27 16:16:24 8008

原创 oracle中将数据进行排序之后,获取前几行数据的写法(rownum、fetch方式)

无论在工作中,还是学习中,都会出现这样子的需求,对某张表进行了排序(按时间排序也好,其他字段排序也罢),然后获取前x行的数据,由于工作中经常出现,因此写篇文章记录一下多种写法。

2022-10-23 15:50:44 6635 2

原创 SQL中的case then的使用(select、update、insert、delete中各自使用)

在工作一段时间后发现,有时候有些事情可以让SQL帮我们做好,并不用傻傻把数据拿到java内存中,再用java进行处理,总结就是:能用一条SQL解决的事情,为什么还要在java程序做过多的处理。

2022-09-18 22:39:44 2011

原创 支持在线写SQL的Oracle学习免费网站(个人常使用)

在工作中使用的是oracle数据库,平时想在家测试一些sql是否可以跑的过,可惜自己电脑并没有安装oracle数据库,甚至完全不想安装到本地,因为据说安装oracle数据库会占很多什么什么…因此,上次在网络上查询了一下,发现了一个比较不错的Oracle在线可以执行sql的网站。测试过了该网站,基本上的SQL都可以支持,还是很不错的网站,直接三连。

2022-09-03 15:43:46 6745

原创 ObjectMapper反序列化中,报错不存在如默认构造函数的原因以及解决方法

在json反序列化的时候,出现了报错,没有存在默认构造函数(ObjectMapper)Json转化对象的基本原理。

2022-08-13 18:49:37 3017

原创 若枚举映射的值不存在,则不进行反序列化

在开发中会经常使用到枚举,而使用其的时候,可能会出现传的值并不在枚举定义的值中,则报错;出现这样子的原因就是对应的值并不存在枚举里面,从而无法进行正常的对象转换赋值,一般经常出现场景无非两个地方一、controller层接口被外部调用的时候;二、mybatis查询结果出来反序列化的时候。某天突发想法,为什么在反序列化的时候,没有传入的值并不在枚举映射的值时候,不报错,自动赋值为null呢?...

2022-07-30 09:24:59 937 1

原创 @ConstructorProperties注解理解以及其对应使用方式

@ConstructorProperties注解的使用方式。

2022-07-24 23:37:55 2320

原创 Stream流中的Map与flatMap的区别

Stream流中的Map与flatMap的区别

2022-07-20 22:20:20 2927 2

原创 如何正确截取字符串(例:应用报错信息截取入库操作)

如何正确截取字符串,例如 应用报错信息太大,如何将报错信息截取入库操作

2022-07-03 12:33:25 1282

原创 excel动态生成Sql语句

文章目录0. 前言1. 先说结论2. 例子0. 前言由于工作原因,无意中发现有时候有些数据来由形式是excel文件,需要把里面的值变成sql语句,然后去数据库中执行。因此记录下如何让excel动态生成sql语句,其实这一部分是属性excel功能的,但工作出现过,那就不放过它,记录下来。1. 先说结论excel中,如果需要动态表示某列某行的值的时候,使用: “&A2&”代表:A列第二行的数值如果是要写成sql,如下:=“update user set username =

2022-05-22 16:29:01 3109

原创 springboot中EnableAutoConfiguration自动装配的使用

文章目录0. 先说结论1. 前言2. 例子1. springboot默认扫描路径2. 引入第三方jar包(里面也有bean对象)3. 小总结一下4. 为什么需要@EnableConfigurationProperties呢?0. 先说结论EnableAutoConfiguration自动装配的作用:即把指定的类构造成对象,并放入spring容器中,使其成为bean对象,作用类似@Bean注解。springboot启动的时候,会扫描该项目下所有spring.factories文件。1. 前言在

2022-05-22 16:05:05 9364 30

原创 如何把自己写的jar包打进本地maven仓库呢(也是springboot项目怎么打成SDK)

文章目录1. 前言2. 例子1. 前言有时候看见别人的工具类jar包,突发自己写的方法,要怎么打成jar包并存在本地的maven仓库呢2. 例子先准备好一个springboot项目,把启动类删除掉,准备个方法:重点:在使用springboot项目的时候,不要使用springboot自带的maven打包,换成普通的maven打包。在pom.xml中,原来配置如下(springboot自带的maven): <build> <plugins&gt

2022-05-18 22:36:50 2708 12

原创 @NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor的区别以及在springboot常用地方

文章目录1. 先说结论2. 代码解析区别1. @AllArgsConstructor2. @RequiredArgsConstructor3. 场景使用---代替@Autowired注入bean对象1. @AllArgsConstructor2. @RequiredArgsConstructor3. @RequiredArgsConstructor 与 @AllArgsConstructor 在注入bean上的区别4. 总结1. 先说结论区别:@NoArgsConstructor:生成无参的构造方法

2022-05-06 21:31:33 24921 3

原创 spring的构造函数注入属性@ConstructorBinding

文章目录0. 前言1. 先说结论2. 快速入门3. 其他情况案例1. 属性不在构造函数的参数列表中,无法被注入2. 使用@ConstructorBinding的类上再使用@Component注解,会报错0. 前言前情回顾:实体类使用@Builder,导致@ConfigurationProperties注入属性失败根据上一篇文章,引出如下问题:1. 先说结论@ConstructorBinding注解:这个注解是SpringBoot在2.2发行版中添加的,添加该注解的属性配置类不再需要添加

2022-04-24 22:53:47 1673

原创 实体类使用@Builder,导致@ConfigurationProperties注入属性失败

文章目录1. 前言2. 场景3. 解释4. 解决方法5. 思考1. 前言这里只是列出,可能需要补一下的知识点:具体的yml文件字符串、List、Map的书写方式并使用@ConfigurationProperties注入配置类.使用@Builder导致的无法创建无参构造方法2. 场景@ConfigurationProperties注入属性,有两个很重要的条件:该类必须是bean对象,即加了@Component注解。该类必须得有set方法,即加@Setter注解。偶然一次发现,

2022-04-24 21:47:27 1821

原创 使用@Builder导致的无法创建无参构造方法

文章目录1. 前言2. 先说结论3. 演示4. 解决方法1. 在实体类上再加上@AllArgsConstructor即可2. 手写个无参构造函数并加上@Tolerate3. 手写有参无参构造方法1. 前言在创建实体类的时候,有时候参数过于多,如果使用有参数的构造函数,实在看起来不是很优雅,一般都会想使用@Builder构建者模式来进行创建对象,不仅仅优雅,而且还方便。当偶然机会发现,如果使用了@Builder,该实体类会失去无参构造方法。具体现象如下:当不加任何注解的时候,完成正常:当加了@

2022-04-24 21:25:03 6257 1

原创 (ObjectMapper)Json转化对象的基本原理

文章目录1. 前言2. 先说结论3. 证明结论4. 使用@JsonAutoDetect定义字段、方法的访问可见性规则1. 前言在实际开发过程中,会经常接收Json字符串并转化为相应对象,而这个转化过程中若报错,无非提示,没有set方法,或者没有get方法,或者静态内部类没有默认构造函数,静态内部类没有带全部参数构造函数,无法转化多了某某field属性等等。因此,在大多数开发的过程中,我们自然会在实体类对象上,一股脑加上 @Data,@NoArgsConstructor,@AllArgsConstru

2022-04-10 21:27:28 5207 4

原创 @EnableConfigurationProperties的使用方式以及作用

文章目录1. 结论2. 代码例子1. @ConfigurationProperties的使用2. @EnableConfigurationProperties的使用3. 为什么会有@EnableConfigurationProperties出现呢?1. 结论在@ConfigurationProperties的使用,把配置类的属性与yml配置文件绑定起来的时候,还需要加上@Component注解才能绑定并注入IOC容器中,若不加上@Component,则会无效。@EnableConfiguration

2022-04-10 13:00:00 4948 11

原创 Properties与ResourceBundle的基本使用以及区别

文章目录1. 区别2. 用法1. Properties解析文件2. ResourceBundle1. 区别Properties 用来解析普通属性文件ResourceBundle 通常用于解析国际化资源属性文件, 会根据本地环境自动选择对应的国际化资源2. 用法1. Properties解析文件先准备一个properties文件放在resource目录下:name=小明age=18public class demo2 { public static void main(St

2022-04-06 00:00:00 755

原创 SpringFactoriesLoader.loadFactories()与SpringFactoriesLoader.loadFactoryNames() 详细使用方式

文章目录1. 前言2. 基本使用3. 结合EnableAutoConfiguration的使用4. 详细源码解读1. 前言SpringFactoriesLoader类的主要作用是通过类路径下的META-INF/spring.factories文件获取工厂类接口的实现类,初始化并保存在缓存中,以供Springboot启动过程中各个阶段的调用。SpringFactoriesLoader.loadFactories():是根据参数factoryClass获取spring.factories下配置的所有实现

2022-04-05 20:58:13 2298

原创 Properties的遍历几种方式

文章目录1. 前言2. 正片1. keySet()方式2. entrySet()方式3. propertyNames()方式4. stringPropertyNames()方式1. 前言无意有次需求是遍历Properties对象,但突然就不知道怎么遍历了,因此写文章记录一下。2. 正片Properties 是键值对 存储的,key—value,因此遍历方式跟Map基本一致。1. keySet()方式public class demo { public static void ma

2022-04-05 18:30:00 2023

原创 StringJoiner拼接字符串(使用以及源码解析)

文章目录1. 介绍2. 代码演示3. 源码1. 成员变量2. 构造函数3. setEmptyValue()4. add()5. toString()6. merge()7. length()8. 再次详细解释toString(),跟length()方法1. 介绍StringJoiner类是jdk8推出的,用于构造由分隔符分隔的字符序列,并可选择性地从提供的前缀开始和以提供的后缀结尾。说的通俗一点:就是让字符串之间有分隔符或者字符串有前缀或者后缀,不用开发人员自己拼接。2. 代码演示public

2022-03-13 12:08:15 1080

原创 List中的并集、交集、差集的使用(并阅读源码)

总结交集:两个list集合共同元素部分,retainAll()方法。差集:从A集合中获取B集合中,没有的元素。removeAll()方法。并集:将两个list集合并在一起,addAll()方法,但有可能出现重复元素,可以先removeAll(),去掉重复元素部分,再addAll()方法。代码演示:交集:retainAll()方法package com.example.demo.list;import lombok.*;import java.util.ArrayList;..

2022-03-06 20:04:09 4241

原创 java中判断一个对象是否是另一个的类的实例(instanceof关键字与isAssignableFrom()方法的区别)

文章目录1. 总结2. 代码演示1. isAssignableFrom()2. instanceof关键字1. 总结instanceof关键字:是实例维度的,一个对象是否为一个类的实例,即 子类实例对象 instanceof 关键字。A.isAssignableFrom(B)方法:是从class维度,一个类(A)是否是另一个类(B)指派的,即A是否是B的父类,即父类.class.isAssignableFrom(子类.class)2. 代码演示1. isAssignableFrom()pub

2022-03-02 23:25:55 1678

原创 SpringFactoriesLoader.loadFactories()与SpringFactoriesLoader.loadFactoryNames() 详细源码解读

文章目录1. 前言2. 源码解读1. SpringFactoriesLoader.loadFactoryNames()2. SpringFactoriesLoader.loadFactories()1. 前言SpringFactoriesLoader类的主要作用是通过类路径下的META-INF/spring.factories文件获取工厂类接口的实现类,初始化并保存在缓存中,以供Springboot启动过程中各个阶段的调用。SpringFactoriesLoader.loadFactories():

2022-03-01 23:15:46 1514

原创 yml文件字符串、List、Map的书写方式并使用@ConfigurationProperties注入配置类

文章目录1. 常规例子2. 非常规例子(不建议)1. 常规例子先准备好一个配置类,如下:1. 使用@ConfigurationProperties 该类必须是个bean对象。2. 该类必须有setting方法,否则无法注入值。@Setter@Getter@Component@ConfigurationProperties(prefix = "test")public class TestConfig { // 字符串 private String userName;

2022-02-28 22:50:36 2220

空空如也

空空如也

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

TA关注的人

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