【发布时间】:2015-09-20 03:00:11
【问题描述】:
我注意到使用 Spring Boot 1.2.4 的 spring cloud Angel.SR3,加载的 spring 版本是 4.1.6.RELEASE。
我阅读的 yaml 处理器中存在内存泄漏问题,该问题已在 spring 4.1.7.RELEASE 中修复。
在此 https://jira.spring.io/jira/secure/ReleaseNote.jspa?projectId=10000&version=14936 中特别提到([SPR-13173] - YAML 处理器使 StreamDecoder 保持打开状态)
我跟踪了一下,发现启动器使用 ${spring.version} 来指定要使用的 spring 版本。
我尝试通过将 4.1.7.RELEASE 添加到我的属性来进行覆盖,但它仍会加载 4.1.6 版本
无论如何我可以做到这一点?我知道这些都是经过策划的,但这种特殊的内存泄漏给我们带来了很多问题。
根据要求,我附上了 pom 的前部。所有基本依赖项都通过 spring cloud 父级拉入。我注意到他们使用 ${spring.version} 来定义 spring 的正确值。我试图通过属性设置覆盖它。在我的 pom 的其余部分中,我从来没有明确地引入任何 spring 框架库。父 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.libertas.vipaas</groupId>
<artifactId>vipaas-starter</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<name>Vipaas Starter</name>
<description>Vipaas Starter</description>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Angel.SR3</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<maven.javadoc.skip>true</maven.javadoc.skip>
<spring.version>4.1.7.RELEASE</spring.version>
..... other stuff ...
</properties>
... other stuff as not relevant ....
【问题讨论】:
-
看起来您使用的是 Maven,对吗?请分享你的 pom,因为答案取决于你如何使用 Spring Cloud 和 Spring Boot 的依赖管理。
-
可以看到Spring boot 1.2.5使用的是spring 4.1.7.RELEASE。我想这更多的是一个1.2.5何时会成为spring cloud的基础的问题。目前最新版本在 spring boot 1.2.4
-
仍然是一个有效的问题。我想将 Spring Boot 升级到 1.3.1.RELEASE,但从 Spring Cloud (Brixton.M3) 获得了一些混合的 springframework 依赖项 (4.2.3 + 4.2.4)。我希望最迟拥有它们。