Java 从intelliJ执行文件IO时,Spring引导会自动重新启动

Java 从intelliJ执行文件IO时,Spring引导会自动重新启动,java,spring,spring-mvc,intellij-idea,Java,Spring,Spring Mvc,Intellij Idea,我有一个非常奇怪的问题,当我以编程方式将文件保存到resources文件夹时,我的spring应用程序将结束所有线程并重新启动。奇怪的是,如果我打包到war并部署到tomcat服务器上,问题似乎就消失了,但当我从IntelliJ运行它时,问题就出现了。更重要的是,我希望这个文件写入在Spring启动之后立即发生,导致应用程序启动和重新启动的无限循环。我在build文件夹中签入resources文件夹,看到每次spring启动时文件都会被保存,但是应用程序似乎在之后崩溃 下面是我用来编写文件的代码

我有一个非常奇怪的问题,当我以编程方式将文件保存到resources文件夹时,我的spring应用程序将结束所有线程并重新启动。奇怪的是,如果我打包到war并部署到tomcat服务器上,问题似乎就消失了,但当我从IntelliJ运行它时,问题就出现了。更重要的是,我希望这个文件写入在Spring启动之后立即发生,导致应用程序启动和重新启动的无限循环。我在build文件夹中签入resources文件夹,看到每次spring启动时文件都会被保存,但是应用程序似乎在之后崩溃

下面是我用来编写文件的代码:

FileOutputStream fos = new FileOutputStream(
        this.getClass().getClassLoader().getResource("processes/").getPath() + "/filename.xml"
);
fos.write(processXML);
fos.close();

这一点也不奇怪

您的类路径依赖项中有:

org.springframework.boot:spring-boot-devtools
您正在写入spring boot reload组件正在扫描更改的位置,正如您所说,这将导致无限循环

在应用程序中设置。属性:

spring.devtools.restart.enabled = false
更多信息请参见:


只需添加两件事,第一件是pom.xml中的devtools依赖项,第二件是yml文件中的属性

#for not restarting the server every time
spring.devtools.restart.enabled:  false

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
#用于不每次重新启动服务器
spring.devtools.restart.enabled:false
org.springframework.boot
弹簧靴开发工具
真的

您是否也尝试将文件保存到其他地方?在任何情况下,一旦打包并执行Spring Boot应用程序,该目录将不可用(默认情况下,除非您重新创建)。重新部署时,您将丢失这些文件-如果这些是临时文件,则可以写入临时目录。持久性数据(应该在重新部署后仍然有效)通常位于“/var/…”下。很高兴知道,但是临时文件在这种情况下是可以使用的