之前分享过Mybatis连接PGSQL数据库,为了操作方便增加了一些类型处理器的文章,那时使用的是Springboot框架, 在这里,当时直接启动项目就注册了这些类型处理器,今天接触了新项目也要用到这些类型处理器,就自然而然的复制了过来,没想到启动项目不生效,找了半天才发现原因,这个项目是Springboot多模块的,然而我放置的位置在Springboot启动类所在的包的外面,所以导致即使加了@Configuration也无法被扫描到,根本就没生成Bean!
问题到此位置已经很明确了,只要你把这些类注册到容器就可以了。
其他的小记录
但是我看到我之前放置的位置(就是没生效的包的位置)明明有其他配置类,这些类是可以生效的,于是我就上网查了一下资料,发现Springboot自动注册时会读取类路径下的 META-INF/spring.factories 文件来查找需要自动配置的类。(老版本叫spring.factories ,在2.4版本之后叫org.springframework.boot.autoconfigure.AutoConfiguration.imports),果然找到了这个文件,里面配置了一些类的全限定名,这些类就是我刚才说到的其他配置类,所以才出现我的没生效,但是同包的其他配置类生效。。。