spring을 이용해서 mongoDB를 연동할 경우 방법은 다음과 같다.
1. pom.xml 수정 : spring-data-mongodb 추가
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>
참고: http://projects.spring.io/spring-data-mongodb/
2. application-config.xml 수정. ( 주로 resources/spring/ 밑에 위치)
2.1 네임스페이스 수정 : xmlns:mongo 한 줄 및 xsi:schemaLocation 2줄 추가.
2.2 mongo:db-factory 추가 및 mongoTemplate 추가
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">
<!-- Uncomment and add your base-package here:-->
<context:annotation-config />
<context:component-scan base-package="my"/>
<mongo:mongo host="localhost" port="27017"/>
<mongo:db-factory dbname="kcdb"/>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>
</beans>
3. Vo(value object) 와 유사한 java파일 작성. ( @Document와 @Id를 포함하도록 한다. )
@Document //mongoDB에서 persistent한 도메인으로 인식하게 되는 어노테이션. 즉 테이블로 인식.
public class User{
@Id // mongoDB의 테이블(category)에서 데이타별 고유id로 자동생성 되는 id에 매핑하기 위함)
private String id;
private String username;
//setters & getters ...
}
4. Service에서 mongoTemplate를 이용한 query작성.
@Service
public class MongoService implements IMongoService{
@Autowired
private MongoTemplate mongoTemplate;
public User getUser(String userName) {
Query query = new Query( where("username").is(userName) );
User user=mongoTemplate.findOne(query, User.class);
return user;
}
}