gpt4 book ai didi

java - Spring Boot Devtools 公开整个类路径

转载 作者:行者123 更新时间:2023-11-30 02:40:37 25 4
gpt4 key购买 nike

今天,我注意到我正在开发的 Spring Boot 应用程序出现了意外行为:如果我输入 http://localhost:8080/application.properties在浏览器上,它愉快地下载了文件。

经过进一步检查,看起来我的整个类路径都暴露了。我可以下载模板文件,甚至可以下载编译后的 .class只需发送 GET 请求即可获取文件。

一一注释掉项目的依赖,好像spring-boot-devtools是导致问题的原因,因为每当删除它时,应用程序都会按预期运行。

据我所知,当您打包应用程序并使用 java -jar 运行它时,Devtools 提供的功能应该被禁用。 ,但即便如此,问题仍然存在。

我从 http://start.spring.io/ 下载了一个新项目,只包含 webdevtools依赖关系,我能够重现该问题,所以我猜测这是一些预期的行为,即使我在任何地方都找不到它的记录。或者这可能是 Devtools 上的一个错误。对此有什么想法吗?

最佳答案

spring-boot-devtools的依赖范围更改为可选

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>optional</scope>
</dependency>

documentation确实表明当使用 java -jar 运行应用程序时,devtools 将被自动禁用,但它似乎没有这样做。它进一步解释了您可以将此依赖项范围设置为可选,以防止它被传递应用。这样就可以了。

更新:

这已被确认为 Spring Boot 1.4.3.RELEASE 中的回归。请参阅GitHub Issue了解更多详情。该修复当前针对 1.5.0。

关于java - Spring Boot Devtools 公开整个类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41854931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com