- 浏览: 2141098 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
时隔半年,再次使用Spring Boot快速搭建微服务,半年前使用的版本是1.2.5,如今看官网最新的release版本是1.4.0,那就用最新的来构建,由于部署环境可能有多套所以使用maven-filter插件,定义多套环境的配置文件,最后使用的时候:
可以采用下面的几个命令来构建不同环境的打包:
maven clean package -Pdev maven clean package -Ptest maven clean package -Pproduct
项目结构截图如下:
pom依赖如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.monitor.bigscreen</groupId> <artifactId>monitor-bigscreen-sql</artifactId> <version>1.0.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <elasticsearch.version>2.3.4</elasticsearch.version> <junit.version>4.12</junit.version> <fast.json>1.2.15</fast.json> <spring.boot.version>1.4.0.RELEASE</spring.boot.version> <druid.version>1.0.15</druid.version> <jdbc.mysql.version>5.1.6</jdbc.mysql.version> </properties> <!--<parent>--> <!--<groupId>org.springframework.boot</groupId>--> <!--<artifactId>spring-boot-starter-parent</artifactId>--> <!--<!–此处不能甩变量替代–>--> <!--<version>1.4.0.RELEASE</version>--> <!--</parent>--> <!--使用上面的父parent或者下面的依赖插件引入父依赖--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <type>pom</type> <version>1.4.0.RELEASE</version> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!--连接池druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency> <!--spring-boot-web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!--使用jetty--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <!--引入mysql的连接驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${jdbc.mysql.version}</version> </dependency> <!--模板使用velocity--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-velocity</artifactId> </dependency> <!--spring-test--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!--spring-jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> </dependencies> <build> <filters> <filter>src/main/filters/xuele-${build.profile.id}.properties</filter> </filters> <!--指定下面的目录为资源文件--> <resources> <!--设置自动替换--> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> <!--也可以用排除标签--> <!--<excludes></excludes>--> <!--开启过滤--> <filtering>true</filtering> </resource> </resources> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </pluginManagement> </build> <profiles> <!--默认激活开发配置,使用index-dev.properties来替换实际的文件key--> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <build.profile.id>dev</build.profile.id> </properties> </profile> <!-- 测试环境配置 --> <profile> <id>test</id> <properties> <build.profile.id>test</build.profile.id> </properties> </profile> <!-- 生产环境配置 --> <profile> <id>product</id> <properties> <build.profile.id>product</build.profile.id> </properties> </profile> </profiles> </project>
然后在跑单元测试的时候,出乎意料的报了下面的一个错误:
Caused by: java.lang.IllegalArgumentException: Circular placeholder reference 'jdbc.url' in property definitions at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:141)
以前使用1.2.x的版本,没有遇到过这个错误,它的大致意思就是找不到jdbc.url这个属性,向配置文件里面赋值,我一直以为是自己某些文件,配置错误了,但检查了好几遍发现,并没有错误的地方,然后我把版本降到1.2.x的版本,确实可以编译通过,这说明了升级版本有一些api变化导致,于是网上几经google搜索,最后在stackoverflow找到了答案:
以前的赋值方式已经不支持了:
jdbc.url=${jdbc.url} jdbc.user=${jdbc.user} jdbc.password=${jdbc.password} jdbc.driveClassName=${jdbc.driveClassName}
最新的支持方式如下:
jdbc.url=@jdbc.url@ jdbc.user=@jdbc.user@ jdbc.password=@jdbc.password@ 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),在后台留言咨询。
技术债不能欠,健康债更不能欠, 求道之路,与君同行。
评论
5 楼
sucheng2016
2016-08-23
mark
4 楼
qindongliang1922
2016-08-17
imlzw 写道
下载原代码,直接debug解析parseStringValue应该就能快速定位问题了。
是一种思路
3 楼
imlzw
2016-08-17
下载原代码,直接debug解析parseStringValue应该就能快速定位问题了。
2 楼
qindongliang1922
2016-08-17
somefuture 写道
它的大致意思就是找不到jdbc.url这个属性
不是这样吧,他说的是大括号语法是不合法的。
不是这样吧,他说的是大括号语法是不合法的。
这么说,也没错
1 楼
somefuture
2016-08-17
它的大致意思就是找不到jdbc.url这个属性
不是这样吧,他说的是大括号语法是不合法的。
不是这样吧,他说的是大括号语法是不合法的。
发表评论
-
记一次log4j不打印日志的踩坑记
2019-09-22 01:58 1446### 起因 前几天一个跑有java应用的生产集群(200多 ... -
在Java里面如何解决进退两难的jar包冲突问题?
2019-07-23 19:10 1137如上图所示: es api组件依赖guava18.0 ... -
如何轻松理解二叉树的深度遍历策略
2019-07-03 23:33 1007我们知道普通的线性数据结构如链表,数组等,遍历方式单一 ... -
为什么单线程Redis性能也很出色
2019-01-21 18:02 2127高性能的服务器,不一 ... -
如何将编程语言里面的字符串转成数字?
2019-01-11 23:23 1983将字符串转成数字在很 ... -
为什么Java里面String类是不可变的
2019-01-06 18:36 1579在Java里面String类型是不可变对象,这一点毫无疑问,那 ... -
关于Java里面volatile关键字的重排序
2019-01-04 18:49 978Java里面volatile关键字主 ... -
多个线程如何轮流打印ABC特定的次数?
2018-12-11 20:42 5924之前的一篇文章,我给 ... -
聊聊Java里面的引用传递
2018-11-16 21:21 925长久以来,在Java语言里面一直有一个争论,就是Java语言到 ... -
理解计数排序算法的原理和实现
2018-10-11 10:03 2044计数排序(Counting sort) ... -
理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略
2018-09-06 11:31 3329### 前言 理解HashMap和Con ... -
关于Java里面多线程同步的一些知识
2018-07-18 09:45 1058# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
Java单例模式之双检锁深入思考
2018-07-08 12:25 3237# Java单例模式之双检锁 ... -
关于Java里面多线程同步的一些知识
2018-07-08 12:23 1078# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
重新认识同步与异步,阻塞和非阻塞的概念
2018-07-06 14:30 1421# 重新认识同步与异步 ... -
线程的基本知识总结
2018-06-27 16:27 1016### (一)创建线程的方式 (1)实现Runnable接口 ... -
Java里面volatile关键字修饰引用变量的陷阱
2018-06-25 11:42 1323# Java里面volatile关键字修饰引用变量的陷阱 如 ... -
关于Java里面的字符串拼接,你了解多少?
2018-06-25 11:28 1309# 关于Java里面的字符串 ... -
深入理解Java内存模型的语义
2018-06-25 11:39 684### 前言 Java内存模型( ... -
如何证明Java多线程中的成员变量数据是互不可见的
2018-06-21 10:09 1449前面的几篇文章主要介绍了Java的内存模型,进程和线程的定义, ...
相关推荐
seata1.4.0
Tortoise SVN 1.4.0.rar
Dojo 1.4.0 beta2 下载,Dojo是一个强大的面向对象JavaScript框架。主要由三大模块组成:Core、Dijit、DojoX
赠送jar包:shiro-core-1.4.0.jar; 赠送原API文档:shiro-core-1.4.0-javadoc.jar; 赠送源代码:shiro-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-core-1.4.0.pom; 包含翻译后的API文档:shiro-core...
ChiaSetup-1.4.0
Chia-1.4.0-arm64
JSON NET For Unity 1.4.0
gtest1.4.0官方源代码,目前最新版本
赠送jar包:shiro-guice-1.4.0.jar; 赠送原API文档:shiro-guice-1.4.0-javadoc.jar; 赠送源代码:shiro-guice-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-guice-1.4.0.pom; 包含翻译后的API文档:shiro-...
Keil.STM32F0xx_DFP 包括2.0.0和1.4.0两个版本,可以根据不用的mdk版本选择不用的pack
consul 1.4.0 Windows版;
jd-gui-1.4.0 64位,jd-gui-1.4.0 64位,jd-gui-1.4.0 64位,jd-gui-1.4.0 64位,
我们的目的之有一个 -- 让V9的功能更强,操作更简单! DEV 1.4.0 功能变更及bug修正说明: 1. 修复前台会员中心菜单管理的BUG 2. 优化 pages 函数,分页出现2个page变量 3. 增加编辑器全屏显示按钮 4. 修正关联词...
赠送jar包:shiro-ehcache-1.4.0.jar; 赠送原API文档:shiro-ehcache-1.4.0-javadoc.jar; 赠送源代码:shiro-ehcache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-ehcache-1.4.0.pom; 包含翻译后的API文档...
svn-1.4.0-setup.exe
1.4.0版 打开index.html即可使用
prototype1.4.0,prototype1.4.0.js
seata-server-1.4.0.zip
AppiumForWindows-1.4.0.zip 移动自动化工具 解压缩后直接使用
Scrapy文档1.4.0