记一次自定义类型处理器未生效的原因

之前分享过Mybatis连接PGSQL数据库,为了操作方便增加了一些类型处理器的文章,那时使用的是Springboot框架, 在这里,当时直接启动项目就注册了这些类型处理器,今天接触了新项目也要用到这些类型处理器,就自然而然的复制了过来,没想到启动项目不生效,找了半天才发现原因,这个项目是Springboot多模块的,然而我放置的位置在Springboot启动类所在的包的外面,所以导致即使加了@Configuration也无法被扫描到,根本就没生成Bean!
问题到此位置已经很明确了,只要你把这些类注册到容器就可以了。(注意,一般类型的处理器不需要注册到容器,这里是因为PGSQL中的UUID这种类型在项目对应的Java类中的UUID类型,然后项目启动找不到Java中UUID对应的类型处理器报错的,项目启动如果扫描到了UUID对应的类型处理器就不会报错了,因为扫描到就代表有保底了,到时默认就以扫描到的处理器去处理UUID类型,当然你也可以指定其他的。总而言之,这里的问题是无法找到XX类型对应的类型处理器导致的错误。Mybatis默认提供了许多常见类型的处理器,感兴趣可以自行搜索)

其他的小记录

但是我看到我之前放置的位置(就是没生效的包的位置)明明有其他配置类,这些类是可以生效的,于是我就上网查了一下资料,发现Springboot自动注册时会读取类路径下的 META-INF/spring.factories 文件来查找需要自动配置的类。(老版本叫spring.factories ,在2.4版本之后叫org.springframework.boot.autoconfigure.AutoConfiguration.imports),果然找到了这个文件,里面配置了一些类的全限定名,这些类就是我刚才说到的其他配置类,所以才出现我的没生效,但是同包的其他配置类生效。。。
在这里插入图片描述

以后还是要细心些啊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值