스프링 실행 취소 ↩️ v0.0.1을 확인하세요!
7020 단어 javagithubopensource
라이브러리는 아직 개발 중이지만 이미 사용해 볼 수 있으며 모든 기본 기능이 작동합니다.
아직 생산에 사용하지 마십시오 :)
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
}
}
이제 autowire
Undo
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]
Reference
이 문제에 관하여(스프링 실행 취소 ↩️ v0.0.1을 확인하세요!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/michaelfmnk/check-out-spring-undo-v001-2nko텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)