Maven과 함께 Spring Boot에서 Mongock 사용
7252 단어 springbootjavamongodb
기본 구성
the introductory article 에서 애플리케이션에 Mongock을 추가하려면
mongock-bom
의 depdencyManagement
섹션에 pom.xml
를 추가해야 합니다. 또한 Spring Boot Maven 컨텍스트에서 Mongock을 사용하려면 두 가지 종속성이 더 필요합니다.<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.mongock</groupId>
<artifactId>mongock-bom</artifactId>
<version>5.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
...
<dependency>
<groupId>io.mongock</groupId>
<artifactId>mongock-springboot</artifactId>
</dependency>
<dependency>
<groupId>io.mongock</groupId>
<artifactId>mongodb-springdata-v3-driver</artifactId>
</dependency>
...
</dependencies>
Mongock용 pom.xml 확장
구성 클래스는 주석
@EnableMongock
으로 확장해야 합니다. 또한 다음 두 가지 속성이 필요합니다.mongock.migration-scan-package=io.bootify.mongo.changelogs
mongock.transaction-enabled=true
정의된 패키지에서 선택할 변경 로그를 검색합니다. 트랜잭션 내 실행은 Mongock에서 권장하며 필수
MongoTransactionManager
는 초기 애플리케이션 내에서 이미 제공되었습니다. 명시적으로 설정auto-index-creation=true
을 생략하고 필요할 때 고유 인덱스를 직접 생성합니다.JSON 스키마 유효성 검사
이 설정으로 Mongock이 이미 활성화되어 준비되었습니다. 종종 변경 로그는 MongoDB에서 초기 문서를 생성하는 데 사용됩니다. 그러나 이 시점에서 우리는 문서가 나중에 우리의 기대에 부응하도록 JSON 스키마와 함께 컬렉션을 생성하려고 합니다.
@ChangeUnit(id = "init-customer", order = "001", author = "bootify")
public class InitCollectionsChangeLog {
@BeforeExecution
public void beforeExecution(final MongoTemplate mongoTemplate) {
mongoTemplate.createCollection("customer", CollectionOptions.empty()
.validator(Validator.schema(MongoJsonSchema.builder()
.required("firstName", "lastName", "email")
.properties(
JsonSchemaProperty.int64("id"),
JsonSchemaProperty.string("firstName"),
JsonSchemaProperty.string("lastName"),
JsonSchemaProperty.string("email")).build())))
.createIndex(new Document("email", 1), new IndexOptions().name("email").unique(true));
}
// @RollbackBeforeExecution, @Execution, @RollbackExecution
}
JSON 스키마 및 고유 색인을 생성하는 Mongock Changelog
Mongock 버전 5부터는
@ChangeLog
가 @ChangeUnit
로 대체되었습니다. @BeforeExecution
의 트랜잭션 내에서 컬렉션을 생성하는 것이 허용되지 않기 때문에 @Execution
에서 컬렉션을 초기화합니다. 애플리케이션을 시작한 후 ChangeUnit이 실행되고 정의된 JSON 스키마가 MongoDB에 추가되었습니다. 기존 컬렉션의 JSON 스키마를 업데이트하려면 this StackOverflow article을 확인하십시오.Bootify를 사용하면 사용자 정의 데이터베이스 스키마가 있는 MongoDB용 Spring Boot 애플리케이션을 무료 플랜으로 생성할 수 있습니다. Professional 요금제에서 Mongock은 고급 설정과 컬렉션의 기본 JSON 스키마를 생성하는 옵션으로 사용할 수 있습니다.
» Learn more
Reference
이 문제에 관하여(Maven과 함께 Spring Boot에서 Mongock 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tleipzig/using-mongock-in-spring-boot-with-maven-1m2j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)