当从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();
# 1 楼答案
只需添加两件事:第一,在pom中添加devtools依赖项。yml文件中的xml和属性
# 2 楼答案
这一点也不奇怪
您的类路径依赖项中有:
您正在写入spring boot reload组件正在扫描更改的位置,正如您所说,这将导致无限循环
在应用程序中设置。特性:
更多信息请参见:
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