標籤:http io ar os 使用 sp java 檔案 資料
一、前言
其實,以前項目組也使用過mongodb,只是那時候是作為主要資料庫來使用,所以在架構方面會更加複雜,比如使用jpa,如果只是把mongodb作為附資料庫使用的話,個人認為通過spring-data-mongodb的mongoTemple來操作資料庫即可。
二、spring 整合mongodb 設定檔如下:(使用者名稱 密碼缺失)
<?xml version="1.0" encoding="UTF-8"?><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/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><mongo:mongo host="192.168.5.117" port="27017" /><bean id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate"><constructor-arg name="mongo" ref="mongo" /><constructor-arg name="databaseName" value="iflashbuy-log" /><constructor-arg name="defaultCollectionName" value="log" /></bean></beans>
三、maven配置
如下,關鍵是要另外配置maven倉庫,因為這裡mongodb是多為日誌記錄,所以其實並不希望對實體進行映射,如果能夠做到通過簡單實體就能夠跟mongo對應就好了,在這方面spring-data-mongodb的1.0.0.M2版本可以實現,而此版本在中央倉庫是沒有的。
<repositories> <repository> <id>spring-milestone</id> <name>Spring Maven MILESTONE Repository</name> <url>http://maven.springframework.org/milestone</url> </repository> </repositories> <dependencies> <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-mongodb</artifactId><version>${version.spring.data}</version></dependency><!-- 本地jar --><dependency> <groupId>com.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.12.1</version> <scope>system</scope> <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/mongo-java-driver-2.12.1.jar</systemPath> </dependency> </dependencies>
四、mongotemple用法
@Testpublic void testAdd() {ApplicationContext ctx = new GenericXmlApplicationContext("classpath*:applicationContext-mongo.xml");mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");LogVo logVo = new LogVo();logVo.setUserName("15920564512");mongoLogService.save(logVo);Query logQuery = new Query(Criteria.where("userName").is("15920564512"));logVo = mongoOperation.findOne("log", logQuery, LogVo.class);Assert.assertNotNull(logVo);}
通過spring-data-mongodb 操作mongodb