programing

SpringBoot 응용 프로그램이 항상 재부팅됨(재시작 루프) - spring.devtools

topblog 2023. 7. 27. 21:32
반응형

SpringBoot 응용 프로그램이 항상 재부팅됨(재시작 루프) - spring.devtools

나는 tomcat이 내장된 스프링 부트 애플리케이션을 가지고 있으며 클래스 경로에서 무언가가 변경되면 애플리케이션을 다시 시작하기 위해 spring-boot-dev 도구를 사용합니다.

내 IDE는 Spring Tool Suite이며, 이로 인해 백그라운드에서 파일이 변경되어 다시 시작할 수 있다고 생각하여 "자동으로 빌드"를 전환했습니다.

문제는 Tomcat과 applicationist가 시작된 후 무한 루프에서 모든 것을 즉시 다시 시작한다는 것입니다.

2017-08-22 10:24:04.309  INFO 9772 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8055 (http)
2017-08-22 10:24:04.415 DEBUG 9772 --- [  restartedMain] o.s.boot.devtools.restart.Restarter      : Creating new Restarter for thread Thread[main,5,main]
2017-08-22 10:24:04.417 DEBUG 9772 --- [  restartedMain] o.s.boot.devtools.restart.Restarter      : Immediately restarting application
2017-08-22 10:24:04.418 DEBUG 9772 --- [  restartedMain] o.s.boot.devtools.restart.Restarter      : Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@558f3be6
2017-08-22 10:24:04.419 DEBUG 9772 --- [  restartedMain] o.s.boot.devtools.restart.Restarter      : Starting application test.web.MyApplication with URLs 
2017-08-22 10:24:04.421  INFO 9772 --- [  restartedMain] test.web.MyApplication                 : Started MyApplication in 22.347 seconds (JVM running for 24.103)
2017-08-22 10:24:05.524 DEBUG 9772 --- [   File Watcher] o.s.boot.devtools.restart.Restarter      : Restarting application
2017-08-22 10:24:05.527 DEBUG 9772 --- [       Thread-9] o.s.boot.devtools.restart.Restarter      : Stopping application
2017-08-22 10:24:05.527  INFO 9772 --- [       Thread-9] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@68f499a9: startup date [Tue Aug 22 10:23:43 CEST 2017]; root of context hierarchy
2017-08-22 10:24:05.529  INFO 9772 --- [       Thread-9] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown
2017-08-22 10:24:05.537  INFO 9772 --- [       Thread-9] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2017-08-22 10:24:05.539  INFO 9772 --- [       Thread-9] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000227: Running hbm2ddl schema export
2017-08-22 10:24:05.567  INFO 9772 --- [       Thread-9] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000230: Schema export complete
2017-08-22 10:24:05.864  INFO 9772 --- [ost-startStop-2] org.apache.wicket.Application            : [wicket-filter] destroy: DevUtils DebugBar Initializer
...
2017-08-22 10:44:04.309  INFO 9772 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8055 (http)
...
2017-08-22 10:44:04.421  INFO 9772 --- [  restartedMain] test.web.MyApplication                 : Started MyApplication in 22.347 seconds (JVM running for 24.103)
2017-08-22 10:44:05.527 DEBUG 9772 --- [       Thread-9] o.s.boot.devtools.restart.Restarter      : Stopping application

해결 방법:알고 있습니다spring.devtools.restart.enabled = false나는 이 동작을 멈출 수 있지만, 물론 정말 필요하다면 다시 시작하고 싶습니다.

질문:.

  • 재시작을 트리거하는 파일 변경을 확인하는 방법은 무엇입니까?
  • 비슷한 문제를 가진 사람이 있습니까?

알겠습니다. 애플리케이션이 시작된 지 몇 초 후에 Spring Boot DevTools를 통해 애플리케이션을 다시 시작하는 것과 관련된 문제를 발견했습니다.

로그 파일 폴더는 DevTools에 의해 검색되었으며 응용 프로그램이 시작 후 이 폴더에 로그를 쓰기 때문에 각 시작은 DevTools를 통해 전체 응용 프로그램의 다시 로드를 트리거했습니다.

해결책은 application.yml 내의 모니터링에서 로그 폴더를 제외하는 것입니다.

spring:
  devtools:
    restart:
      exclude: logs/**

일반 속성 파일을 사용하는 경우에는 동일하지만 중간에 (.) 점이 있습니다.자세한 내용은 http://www.logicbig.com/tutorials/spring-framework/spring-boot/restart-exclude/ 을 참조하십시오.

application.properties를 추가했는데 잘 작동하고 있었습니다. TQ

spring.devtools.restart.additional-exclude=logs/**

IntelliJ Idea IDE에서

실행/디버그 구성 편집... ->Spring Boot 서비스 항목을 선택합니다(왼쪽 패널).->실행 중인 애플리케이션 업데이트 정책 설정:

  • '업데이트' 작업 시:아무 것도 하지 마
  • '프레임 비활성화' 시: 아무것도 하지 않음

언급URL : https://stackoverflow.com/questions/45812812/springboot-applications-keeps-rebooting-all-the-time-restart-loop-spring-dev

반응형