programing

서버를 다시 시작하지 않고 Spring Boot가 코드의 변경 사항을 로드하는 방법

lovejava 2023. 7. 3. 22:27

서버를 다시 시작하지 않고 Spring Boot가 코드의 변경 사항을 로드하는 방법

이것은 저에게 당신이 당신의 코드에서 약간의 변경을 가했을 가능성과 그것은 스프링 부트 애플리케이션이며, 당신은 서버를 다시 시작하지 않고 그 변경을 얻을 수 있습니까?라는 인터뷰 질문이었습니다.만약 그렇다면, 봄 부츠에서 어떻게 그것이 가능합니까?

Spring Boot에서 어떻게 가능한지 알고 싶습니다.

리소스가 변경될 때마다 브라우저 새로 고침을 트리거하는 데 사용할 수 있는 LiveReload 서버가 포함된 프로젝트에 spring-boot-devtools 모듈을 추가합니다.livereload.com 에서 브라우저 확장을 다운로드할 수 있습니다.

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

추가만 하면 됩니다.devtool에 대한 의존.pom.xml및 yml 파일 속성:

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

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

당신은 여기에서 봄 개발 도구를 확인하고 싶을 수 있습니다.

알림:

  1. 무슨 일이 있어도 자바 코드를 변경하면 서버를 다시 시작해야 합니다. 스프링 개발 도구는 다시 로드하는 데 도움이 됩니다.

  2. jsp이면 서버를 재시작할 필요가 없습니다.

저는 intelij를 사용하고 있으며, 다음과 같은 의존성 설정이 저에게 적용됩니다.

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

다음 단계를 시도하면 작동합니다.

  1. 다음을 pom.xml에 추가합니다.

    <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-devtools</artifactId>       
             <optional>true</optional>
         </dependency>
    
  2. application.properties에서

    spring.devtools.devtools.dev.enabled=true

참고: application.properties 파일을 변경한 후 스프링 부팅이 다시 시작되는지 확인합니다.

자세한 내용은 https://docs.spring.io/spring-boot/docs/1.5.16.RELEASE/reference/html/using-boot-devtools.html 을 참조하십시오.

POM.xml에 종속성이 있는 경우 STS의 Project 탭에서 Build Automatic을 활성화하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/45018873/how-does-spring-boot-load-changes-in-code-without-restarting-the-server