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。

上一篇 下一篇

猜你喜欢

热点阅读