MongoDB
JSON 기반의 도큐먼트 데이터베이스로 Schema 가 없다는 것이 특성이다.
필요의존
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
spring-boot-starter-data-mongo 추가 시 스프링 부트에서 지원해주는 객체들
- MongoTemplate
- MongoRepository : Jpa 처럼 상속
public interface MongoRepository extends org.springframework.data.mongodb.repository.MongoRepository<Account,String> {
Optional<Account> findByEmail(String email);
}
스프링부트가 기본적으로 접속하려는 포트는 몽고 db의 27017. 즉, 설정할 필요가 없음
@Document
- 해당 클래스로 도큐먼트를 만든다.
- 도큐먼트 들은 컬렉션에 들어가며 컬렉션은 테이블과 유사함
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "accounts")
public class Account {
@Id
private String id;
private String username;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
테스트를 위한 내장형 몽고DB
- 이후 슬라이싱 테스트 가능
- @DataMongoTest
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>test</scope>
</dependency>
@SpringBootApplication
public class MongoApplication {
public static void main(String[] args) {
SpringApplication.run(MongoApplication.class, args);
}
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private MongoRepository mongoRepository;
@Bean
public ApplicationRunner applicationRunner(){
return args -> {
Account accounts = new Account();
accounts.setEmail("aaa@bbb");
accounts.setUsername("aaaa");
mongoRepository.insert(accounts);
// mongoTemplate.insert(accounts);
System.out.println("완료");
};
}
}
'SpringBoot' 카테고리의 다른 글
Rest 클라이언트 커스터마이징 (0) | 2020.11.08 |
---|---|
RestTemplate / WebClient (0) | 2020.11.08 |
데이터베이스마이그레이션 (0) | 2020.11.08 |
JPA 사용시 데이터베이스 스키마 초기화 및 데이터 사용 방법 (0) | 2020.11.08 |
JPA 사용 (0) | 2020.11.08 |