MongoDB로 Spring Boot 애플리케이션 설정하기🍃

3122 단어
Spring Boot는 MongoDB를 데이터베이스로 액세스하는 애플리케이션에 대한 탁월한 지원을 제공합니다.

Spring Data MongoDB를 사용하여 자체 애플리케이션을 생성하려면 다음과 같은 준비가 필요합니다.

구성

문서 지향 데이터베이스인 MongoDB는 Hibernate를 ORM 계층으로 사용하는 애플리케이션에 연결되지 않습니다. 대신 spring-boot-starter-data-mongodb를 앱에 대한 종속성으로 추가하여 POJO 및 리포지토리를 사용하여 MongoDB에 액세스하는 유사한 접근 방식을 제공합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>


필수 Maven 종속성

이 종속성이 있으면 application.yml 또는 application.properties를 URI로 확장할 수 있습니다. 데이터베이스가 아직 존재하지 않으면 MongoDB가 자동으로 생성합니다. auto-index-creatio n 을 true 로 설정하면 문서에 @Indexed(unique = true) 로 주석이 달린 고유 인덱스가 앱 시작 중에 추가됩니다.

spring.data.mongodb.uri=mongodb\://localhost\:27017/mongo
spring.data.mongodb.auto-index-creation=true


성공적인 데이터베이스 연결을 위해서는 URI만 필요합니다.

구성 클래스에서 @EnableMongoRepositories를 설정해야 합니다. 이렇게 하면 지정된 패키지에서 확장되는 클래스MongoRepository를 검색합니다. 이에 대한 예는 잠시 후에 제공됩니다. ValidatingMongoEventListener 모든 문서가 지속되기 전에 검증되도록 제공함으로써 javax.validation와 같은 @NotNull 제약 조건으로 해당 필드를 확장할 수 있습니다.

@Configuration
@EnableMongoRepositories("io.bootify.mongo.repos")
public class MongoConfig {

    @Bagya
    public ValidatingMongoEventListener validatingMongoEventListener(
            final LocalValidatorFactoryBean factory) {
        return new ValidatingMongoEventListener(factory);
    }

}


구성의 첫 번째 버전

또한 애플리케이션에 대한 트랜잭션 지원을 활성화하려고 합니다. 예를 들어 서비스 방법을 @Transactional 로 표시할 수 있습니다. 이 기능을 지원하려면 MongoDB 인스턴스를 복제 세트로 초기화해야 합니다.

@Bagya
public MongoTransactionManager transactionManager(final MongoDatabaseFactory databaseFactory) {
    return new MongoTransactionManager(databaseFactory);
}


구성에 트랜잭션 지원 추가

예제 문서 및 리포지토리

이러한 준비를 통해 우리는 이미 간단한 문서와 관련 저장소를 정의할 수 있습니다. 이 예에서는 제공하지 않으면 MongoDB에서 ObjectID로 자동 생성되는 문자열 유형의 기본 키를 사용합니다.

@Document
public class Customer {

    @Id
    private String id;

    @Size(max = 255)
    private String firstName;

    @Size(max = 255)
    private String lastName;

    @Indexed(unique = true)
    @NotNull
    @Size(max = 255)
    private String email;

}


"고객"이라는 컬렉션에 매핑된 첫 번째 POJO
MongoRepository를 확장하여 저장소를 추가합니다. Spring Data에서 알려진 것과 동일한 방식으로 작동하며 사용자 지정 쿼리로 확장할 수 있습니다.

public interface CustomerRepository extends MongoRepository<Customer, String> {

    Customer findByEmail(String email);

}


MongoDB용 기본 리포지토리

이것으로 Spring Boot 애플리케이션을 MongoDB와 연결하기 위한 모든 준비가 완료되었습니다. Bootify의 무료 플랜에서는 등록 없이 사용자 정의 데이터베이스 스키마로 애플리케이션을 생성할 수 있습니다. 그런 다음 애플리케이션의 실행 가능한 소스 코드를 직접 다운로드할 수 있습니다.

좋은 웹페이지 즐겨찾기