스프링 실행 취소 ↩️ v0.0.1을 확인하세요!

7020 단어 javagithubopensource
방금 Spring Undo v0.0.1을 게시했습니다.

라이브러리는 아직 개발 중이지만 이미 사용해 볼 수 있으며 모든 기본 기능이 작동합니다.
아직 생산에 사용하지 마십시오 :)

GitHub: https://github.com/michaelfmnk/spring-undo

Spring Undo는 Spring Boot 애플리케이션에서 실행 취소 기능을 쉽게 구현하는 방법을 제공하는 스프링 부트 스타터입니다.

주요 기능은 다음과 같습니다.

  • 실행 취소 구현을 대폭 간소화합니다. 달리 관리해야 하는 상용구를 줄입니다.

  • 애플리케이션 확장을 지원합니다. Persist-module은 애플리케이션의 모든 인스턴스 간에 공유 스토리지를 사용할 수 있습니다. 따라서 모든 인스턴스에서 실행 취소를 호출할 수 있습니다.

  • Spring-Undo는 Spring Boot Starter입니다. Spring-Undo 설정을 위한 추가 설정을 작성할 필요가 없습니다.

  • 용법


    build.gradle 파일에 다음 종속성을 추가합니다.

    implementation 'dev.fomenko:spring-undo-core:v0.0.1'
    implementation 'dev.fomenko:spring-undo-redis:v0.0.1'
    


    또는 pom.xml 파일:

    <dependency>
        <groupId>dev.fomenko</groupId>
        <artifactId>spring-undo-core</artifactId>
        <version>0.0.1</version>
    </dependency>
    <dependency>
        <groupId>dev.fomenko</groupId>
        <artifactId>spring-undo-redis</artifactId>
        <version>0.0.1</version>
    </dependency>
    


    spring-undo-redis의 경우 애플리케이션에서 redis를 설정하고 구성해야 합니다.

    먼저 실행 취소할 수 있는 이벤트를 나타내는 간단한 DTO를 만듭니다.

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class EmailChangedEvent {
        private String oldEmail;
        private String newEmail;
    }
    


    그런 다음 실행 취소 제한 시간에 도달하거나 실행 취소가 호출될 때 호출될 이벤트 리스너를 등록합니다.

    @Component
    public class EmailChangedUndoEventListener extends UndoEventListener<EmailChangedEvent> {
        @Override
        public void onUndo(EmailChangedEvent action) {
            // handle here undo logic: reset db state
        }
    
        @Override
        public void onPersist(EmailChangedEvent action) {
            // handle here what to do when event is persisted
            // For example, you can send notification to the new & old email address
        }
    }
    


    이제 autowireUndo bean을 실행하고 실행 취소할 수 있는 작업을 나타내는 개체를 게시합니다. publish는 작업의 식별자를 반환합니다. 작업을 취소하는 데 사용할 수 있습니다.

    @RestController
    @RequiredArgsConstructor
    class UserController {
        private final Undo undo;
    
        @PutMapping("/email")
        public String changeEmail(ChangeEmailRequest request) {
            // main application logic
            var undoableEvent = new EmailChangedEvent("[email protected]", "[email protected]");
    
            // publish method returns event id that can be used to undo the action
            return undo.publish(undoableEvent);
        }
    }
    


    마지막으로 식별자로 작업을 실행 취소하는 컨트롤러를 만듭니다.

    @RestController
    public class UndoController {
        private final Undo undo;
    
        @GetMapping("/undo/{id}")
        public String undo(@PathVariable String id) {
            undo.undo(id);
            return "Undo successful";
        }
    }
    


    끝났어! 🎉



    그게 다야. 이제 실행 취소를 구현하려고 할 때마다 다음 두 가지 경우 중 하나에서 Spring Undo에 의해 호출될 DTO 이벤트 객체 및 구현 리스너를 생성하기만 하면 됩니다.

    콘택트 렌즈



    공동 작업에 대한 질문, 제안 또는 아이디어가 있으면 메시지를 보내주세요: [email protected]

    좋은 웹페이지 즐겨찾기