背景
旧项目中依然在使用springmvc的xml传统配置,最近需要使用MongoDB,需要在spring引入MongoDB的连接配置。
解决
配置mongodb数据库
1<?xml version="1.0" encoding="UTF-8"?> 2<beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:mongo="http://www.springframework.org/schema/data/mongo" 6 xsi:schemaLocation= 7 "http://www.springframework.org/schema/context 8 http://www.springframework.org/schema/context/spring-context-3.0.xsd 9 http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd 10 http://www.springframework.org/schema/beans 11 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 12 13 <!-- Default bean name is 'mongo' --> 14 <mongo:mongo-client id="mongoClient" host="localhost" port="27017"/> 15 16</beans>
配置mongodb数据工厂
<mongo:db-factory id="mongoDbFactory" mongo-ref="mongoClient"/>
配置mongodb的Template
1<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> 2 <constructor-arg ref="mongoDbFactory"/> 3</bean>
配置mongodb的dao文件夹位置
<mongo:repositories base-package="com.xxx.dao" mongo-template-ref="mongoTemplate" />
mongodb的dao实现
1package com.xxx.dao; 2 3import com.xxx.model.Form; 4import org.springframework.data.mongodb.repository.MongoRepository; 5 6import java.util.List; 7 8public interface FormRepository extends MongoRepository<Form, String>{ 9 10public List<Form> findByCreator(String creator); 11}
mongodb的service实现
1package com.xxx.service; 2 3import com.xxx.dao.FormRepository; 4import com.xxx.model.Form; 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Service; 7 8import java.util.List; 9 10@Service(value = "formService") 11public class FormService { 12 13 @Autowired 14 FormRepository formRepository; 15 16 /** 17 * 根据创建者,获取表单 18 * @param creator 创建者 19 * @return 表单列表 20 */ 21 public List<Form> findByCreator(String creator){ 22 return formRepository.findByCreator(creator); 23 } 24}
感受
如果使用spring boot的配置文件配置的这个方式,是最好的。能不用xml配置就不用,毕竟官方首先教我们都是去xml化配置的。
参考: Introduction to Spring Data MongoDB Spring Data MongoDB - Reference Documentation