使用SpringBoot1.4.0的一个坑

时隔半年,再次使用Spring Boot快速搭建微服务,半年前使用的版本是1.2.5,如今看官网最新的release版本是1.4.0,那就用最新的来构建,由于部署环境可能有多套所以使用maven-filter插件,定义多套环境的配置文件,最后使用的时候: 可以采用下面的几个命令来构建不同环境的打包:

Java代码

  1. maven clean package -Pdev
  2. maven clean package -Ptest
  3. maven clean package -Pproduct

项目结构截图如下:

pom依赖如下:

然后在跑单元测试的时候,出乎意料的报了下面的一个错误:

Java代码

  1. Caused by: java.lang.IllegalArgumentException: Circular placeholder reference 'jdbc.url' in property definitions
  2. at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:141)

以前使用1.2.x的版本,没有遇到过这个错误,它的大致意思就是找不到jdbc.url这个属性,向配置文件里面赋值,我一直以为是自己某些文件,配置错误了,但检查了好几遍发现,并没有错误的地方,然后我把版本降到1.2.x的版本,确实可以编译通过,这说明了升级版本有一些api变化导致,于是网上几经google搜索,最后在stackoverflow找到了答案: 以前的赋值方式已经不支持了:

Java代码

  1. jdbc.url=${jdbc.url}
  2. jdbc.user=${jdbc.user}
  3. jdbc.password=${jdbc.password}
  4. jdbc.driveClassName=${jdbc.driveClassName}

最新的支持方式如下:

Java代码

  1. jdbc.url=@jdbc.url@
  2. jdbc.user=@jdbc.user@
  3. jdbc.password=@jdbc.password@
  4. jdbc.driveClassName=@jdbc.driveClassName@

总结:如果遇到这种类似的问题,仅仅是因为升级版本造成的,最快的解决办法就是上官网看changes 看看最新的版本的使用方式。 参考链接: http://stackoverflow.com/questions/36501017/maven-resource-filtering-not-working-because-of-spring-boot-dependency https://github.com/spring-projects/spring-boot/issues/980 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3-Release-Notes#maven-resources-filtering

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2016-08-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

快速掌握:大型分布式系统中的缓存架构

CDN(Content Delivery Network 内容分发网络)的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中...

10630
来自专栏日常分享

Java Web Action DAO Service层次理解

参考来源:http://blog.csdn.net/inter_peng/article/details/41021727

23920
来自专栏xingoo, 一个梦想做发明家的程序员

程序猿的日常——SpringMVC系统架构与流程回顾

web开发经历了很漫长的时间,在国内也快有十几年的时间了。从最开始的进程级到现在的MVC经历了很多的改进和优化,本篇就主要复习了解下Spring MVC相关的...

22270
来自专栏飞雪无情的博客

工具 | Android Studio 2.3镜像更新,极速下载体验#2

Android Studio 2.3发布了,更新了很多不错的功能,比如WebP的支持,AppLink助手等,,因为众所周知的原因,所以就第一时间更新了镜像,让大...

10030
来自专栏Java技术栈

SpringCloud Eureka自我保护机制

自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。...

413100
来自专栏随心DevOps

你可能不知道的 Django Rest Framework 的两个新特性

前端、甚至大前端发展如此火爆的 2017 年(我相信 2018 年一样)刚过去,像 MVC 架构那样直接使用后端模板渲染前端页面的方式已经不被推崇了(当然有些场...

39680
来自专栏Java后端技术栈

使用Jenkins配置SpringBoot的自动化构建

http://blog.csdn.net/xlgen157387/article/details/50353317

13520
来自专栏MoeLove

Linux上源码编译MongoDB

MongoDB的官网上是有已经编译好的二进制包的,这里选择clone MongoDB在github上的仓库

15030
来自专栏大魏分享(微信公众号:david-share)

详细描述微服务架构模式 | 微服务系列第三篇

虽然微服务通常是单独部署的,但大多数企业级微服务架构要求服务彼此交互以及与其他外部服务交互。 使用进程间通信(IPC)机制实现该通信。 根据应用程序的要求,微服...

10320
来自专栏技术/开源

开源API集成测试工具 Hitchhiker v0.3更新 - 自动同步

Hitchhiker 是一款开源的 Restful Api 集成测试工具,支持Schedule, 数据对比,压力测试,可以轻松部署到本地,和你的team成员一起...

22480

扫码关注云+社区

领取腾讯云代金券