maven中的配置:
<!-- 环境 -->
<profiles>
<!-- 开发 -->
<profile>
<id>dev</id>
<activation>
<!--默认激活配置-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--当前环境-->
<profile.name>dev</profile.name>
</properties>
</profile>
<!-- 测试 -->
<profile>
<id>test</id>
<activation>
<!--默认激活配置 s-->
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!--当前环境-->
<profile.name>test</profile.name>
</properties>
</profile>
<!-- 生产 -->
<profile>
<id>prod</id>
<activation>
<!--默认激活配置-->
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!--当前环境,生产环境为空-->
<profile.name>prod</profile.name>
</properties>
</profile>
</profiles>
application.yml中的配置:
# Spring配置
spring:
# 模板引擎
thymeleaf:
mode: HTML
encoding: utf-8
# 禁用缓存
cache: false
# 资源信息
messages:
# 国际化资源文件路径
basename: static/i18n/messages
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
profiles:
active: @profile.name@
这样配置的目的是为了在开发、测试、生产环境中灵活切换,项目启动后报题目中的异常。
解决办法,在pom.xml build节点增加如下的配置:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
必要时重新加载或刷新一下maven和,对target进行clean。