SpringBoot 采坑笔记
2018-07-04 本文已影响0人
阿尔卡雷特
1. convert 没有自动加载,导致无效
如果类中添加了 @EnableWebMvc 并扩展了 extends WebMvcConfigurationAdapter 类,则springboot的@EnableAutoConfiguration会失效。 此时必须通过重写addFormatters方法手动添加convert。
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new XXConvert());
}
ps:如果没有其他需求,则不要使用@EnableWebMvc,springBoot会根据@Component自动加载convert。
更多详细信息参考:https://blog.csdn.net/testcs_dn/article/details/80249894
2. 多数据源配置时的自动构建:
网上很多文章是描述springBoot支持多数据源的,但基本没有说明多数据源下如何启动时构建库(执行schema.sql)和初始化数据(执行data.sql)的。经过不懈努力,阅读了springBoot启动加载源码后找到了如下解决方案:
application.yml中的启动时构建不要写在数据源配置中,要写在顶部spring.datasource.initialize、data、schema、sql-script-encoding 这几个参数只能处理主数据源(标记为@Primary的DataSource)如下:
配置信息
详见springBoot的类:org.springframework.boot.autoconfigure.jdbc.DataSourceInitializer
ps: 如果使用了非mysql的库(不支持 IF NOT EXISTS 语句)要使用schema.sql代替data.sql 去清空和添加测试数据。因为springBoot的逻辑是schema.sql不能为空,且必须执行成功后才会执行data.sql。