有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当从intelliJ执行文件IO时,java 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();

共 (2) 个答案

  1. # 1 楼答案

    只需添加两件事:第一,在pom中添加devtools依赖项。yml文件中的xml和属性

    #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>
    
  2. # 2 楼答案

    这一点也不奇怪

    您的类路径依赖项中有:

    org.springframework.boot:spring-boot-devtools
    

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

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

    spring.devtools.restart.enabled = false
    

    更多信息请参见:

    https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html https://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html