안녕하세요.
정말 간단해서 간단 연동기..
제목 그대로 두개를 연동해보겠습니다.
샘플 프로젝트에 이것저것 붙이다보니 벌써 config 파일만 5개가 생겼네요.
그럼 연동 시작.
1. pom.xml
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>${mongodb-Spring-data.version}</version>
</dependency>
을 구성해주어야 합니다. 버젼은 1.7.1.RELEASE 로 구성했네요.
2. Java Config
@Configuration
@ComponentScan
@EnableMongoRepositories
public class MongodbConfig extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return "miller";
}
@Override
public Mongo mongo() throws Exception {
return new MongoClient("192.168.1.10", 27017);
}
@Override
public String getMappingBasePackage() {
return "com.ese.dwg.mongo";
}
}
몽고 디비의 기본 포트는 27017 입니다.
"miller"는 데이터베이스 이름이구요. 만들어주지 않아도 생성됩니다.
몽고 디비는 Db-Collection-document 형태이기 때문에 어노테이션으로 VO를 매핑해줄 수 있습니다. 그래서 getMappingBasePackage를 아래와 같이 지정했습니다.
VO에는 어떻게 사용했는가에 대해서는
3. Mapping
@Document(collection="sensor")
public class Sensor {
@Id
public String id;
public String deviceName;
public String cate;
public String value;
public String regTime;
public String getId() {
return id;
}
와 같이 @Document는 다큐먼트다! 그리고 sensor라는 collection과 Mapping 된다라고 표현하고 있습니다.
4. 서비스
@Autowired
MongoTemplate mongo;
public List<Sensor> getSensor() {
return mongo.findAll(Sensor.class, "sensor");
}
}
서비스는 위와 같이 셋팅하면 됩니다. MongoTemplate 객체를 autowired해서 사용합니다. 그리도 저 MongoTemplate에 모든게 있습니다.
간단하게 조회할 수 있었으나!
당연히 삽질은 존재합니다.
몽고 디비는 지금 제가 작성했던 기준으로 1.7.1이 가장 stable한 버전입니다. 몽고디비에서 spring-data-commons의 클래스를 사용하는데 1.0.6버전에서는 NotFoundClass 에러가 뜨더군요. 작년에 만든 샘플 프로젝트라 ㅋㅋ..
그래서 찾아보니 1.10.0으로 올리고 문제를 해결하였습니다.
http://projects.spring.io/spring-data-mongodb/
여기서 설명이 잘 되어 있고 라이브러리도 다운 하실 수 있습니다.
'SPRING' 카테고리의 다른 글
[Spring+Redis] 스프링과 레디스 연동 (0) | 2015.07.17 |
---|---|
[Spring MVC] 스프링 MVC 아키텍쳐 (0) | 2014.04.26 |
[토비] Spring 싱글톤 패턴의 이야기 (0) | 2014.04.12 |
[file download] 스프링 BeanNameResolver 이용한 파일 다운로드 (0) | 2014.04.01 |
[MYBATIS] KEY값을 생성하고 생성된 KEY 되돌려 받기 (0) | 2013.10.24 |