Prefácio
O foco deste artigo é integrar o MongoDB e entrar no projeto, descobrir problemas na prática, rastrear problemas e resolver problemas. Não vou dizer muito abaixo, vamos dar uma olhada na introdução detalhada juntos.
1. Preparação
2. Características
3. Pacote de dependência
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.5.0.RELEASE</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <Versão> 1.5.10 </sisters> </dependency>
Dependências relacionadas à primavera
<!-dependências relacionadas à Web da primavera-> <pendency> <puerpiD> org.springframework </groupiD> <stifactId> spring-web </artifactId> <versão $ {spring.version} </version> </dependency> <pendency> <rugnid> org.springframe </grupo> <Versão> 3.1.2.Release </sipers> </dependency> <!-Spring Test Dependências-> <pendency> <puperid> org.springframework </foupiD> <TRATIFACTID> Spring-test </Artifactid> <Version> 4.3.1.release </sipers> </pendency>4. Integre MongoDB
[Nota: Consulte o meu artigo sobre como adicionar gerenciamento de permissão no MongoDB: Ativar autenticação de permissão em MonGDB]
MongoDB.Properties
Mongo.Hostport = 172.16.4.166: 27017mongo.dbname = ad_api_countmongo.username = hehaitaomongo.password = hehaitao Mongo.ConnectionsPerhost = 8MONO.THREADSALLOWEDEDOBLOCKFORCONNECTIONMULIER = 4#/U8FDE/U63A5/U8D85/U65F6/ u65f6/u95f4mongo.connectTimeout = 1000#/u7b49/u5f85/u65f6/u95f4mongo.maxwaittime = 1500mongo.autoconnectret y = truemongo.socketkeepalive = true#soquete/u8d85/u65f6/u65f6/u95f4mongo.sockettimeout = 1500mongo.laveok = true
mongodb.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 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.1.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.1.xsd"> <!-Carregue o arquivo de configuração de propriedades do mongodb-> <Contexto: Property-placeholder Location = "ClassPath: MongoDB.Properties" Ignore-unResolvable = "True"/> <!-Defina o objeto Mongo, correspondendo ao Mongo no pacote oficial do JAR de MongoDB. Réplica Definir o endereço IP e a porta da réplica de cluster-> <Mongo: Mongo id = "Mongo" Réplica-set = "$ {Mongo.hostport}"> <Mongo: Opções Connections-per-host = "$ {Mongo.ConnectionPerhost}" Threads-areled-to-Block-for-Connection-Multiplier = "$ {Mongo.ThreadsallowedToBlockForConnectionMultiplier}" Connect-timeout = "$ {Mongo.ConnectTimeout}" max-wait-time = "$ {Mongo.MaxOittime}" auto-co-Conknect = "$ {MONON.MOXOTIMATIMATIMATIMATIMATIMATIMATR-RECONETRO =" $ {MONO.MAXOTIMATIMATIMATIMATIMATIMATIMATIMET-RETO " Socket-Keep-alive = "$ {Mongo.socketkeepalive}" Socket-timeout = "$ {Mongo.sockettimeout}" escravo-ok = "$ {Mongo.laveok}" "Write-Number =" 1 "Write-timeout =" 0 "Write-fSync =" verdadeiro "/> id = "mgFactory" dbName = "$ {Mongo.dbname}" userName = "$ {Mongo.username}" senha = "$ {Mongo.password}" Mongo-ref = "Mongo" /> <Bean Id = "Mongotemplate" "> <construtorn =" </ Bean> </ Beans>Spring-Contex.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://wwwxt.springframework.org/schema =" http://wwwx. xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://www.springframework.org/schema/beans O http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tc.xsd http://www.springframework.org/schemap http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema http://www.springframework.org/schema/task/spring-task-3.1.xsd "> <aOP: aspecto proxy-target-class =" True "/> <Contextation-Config/> <!-Digno-sclass sob com.lutongn. base-package = "com.lutong.cps"> <Contexto: exclude filter type = "anotação" expressão = "org.springframework.steretype.controller"/> </context: component-scan> <importação Resource = "mongodb.xml"/> </beans>
5. Implementação de código
Implementação básica de MongoDbSservice
/** * Nome do arquivo: mongodbsservice.java * pacote: com.lutongnet.ad.service * Descrição: TODO * Autor: Zhangfj * Data: 2012-11-29 * Versão: v1.0 */package com.lutong.cps.schedule.service.fj; import ou; org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Query;import org.springframework.stereotype.Service;/** * @author zhangfj * */ @Service ("MonGodbService") classe pública MonGodbService {/ * @Resource (name = "Mongotemplate") Mongotemplate protegido Mongotemplate; */** ** ** @param query * @param entityclass * @return t */public <t> tinity @fery query ClassPathXMLApplicationContext ("mongodb.xml"); Mongotemplate Mongotemplate = (Mongotemplate) context.getBean ("Mongotemplate"); // você pode chamar diretamente de retorno mongotemplate.findone (Query, entityclass); }}Classe Heritando UserAdCountService
/** * Nome do arquivo: userAdCountService.java * pacote: com.lutongnet.ad.service * Descrição: TODO * Autor: zhangfj * Data: 2012-11-29 * Versão: vod.0 */package com.lutong.cps.schedule.service.fj; importar ou org.springframework.data.mongodb.core.query.query; importar org.springframework.tereotype.service; importar com.lutong.cps.schedule.entity.USeradCount;/** * @Author zhangfj */ @Service (" MONGODBSVICE { / ** * Obtenha o número de visualizações de um único anúncio e, se não puder ser consultado, retornará 0 * * @param adcode * @return int * / public int getUseradCount (userAdcount adcode) {critério Critério = novo critério (); Critérios. Consulta consulta = nova consulta (critério); UserAdCount Result = findOne (consulta, userAdCount.class); if (null! = resultado) {return resultado.getTimesCount (); } retornar 0; }}Classe de entidade UserAdCount
pacote com.lutong.cps.schedule.entity; importar java.util.date; importar org.springframework.data.annotation.persistenceconstructor; importe org.springframework.data.mongodb.core.Mapping.Document;/** ** ** ** MONGO */@Document (collection = "userAdcount") classe pública userAdcount {private int timescount; / *** Conta de usuário*/ String privada Userad; string privada adcode; private String CountDate; Data privada expireat; @PersistenceConstructor public userAdCount (int timescount, string userad, string adcode, string countDate, date expireat) {this.timescount = timescount; this.Userad = userad; this.adcode = adcode; this.CountDate = countDate; this.expireat = expireat; } public userAdCount (string userad, string adcode, string countDate) {this.userad = userad; this.adcode = adcode; this.CountDate = countDate; } public userAdCount (string userad, string adcode, string countDate, date expireat) {this.userad = userad; this.adcode = adcode; this.CountDate = countDate; this.expireat = expireat; } public userAdCount (string countDate) {this.CountDate = countDate; } public int getTimesCount () {retornar timescount; } public void SettimeScount (int timecount) {this.TimesCount = timecount; } public string getUserad () {return userad; } public void setUserad (string userad) {this.userad = userad; } public string getadcode () {return adcode; } public void setAdCode (string adcode) {this.adcode = adcode; } public string getCountDate () {return countDate; } public void setCountDate (string countDate) {this.CountDate = countDate; } public data getExpireat () {return expireat; } public void setExpireat (data expireat) {this.expireat = expireat; }}Finalmente, escreva uma aula de teste para testá -la
importar java.util.list; importar javax.annotation.resource; importar org.junit.test; importar org.junit.runner.runwith; importar org.springframework.test.context.contextConfigaturation; importação Org.springFramework.test.test.test.Context.ContextConxt.SPRINGFRONT.TEST.Test.Test.Context.ContextConxtorn; com.acts.web.modules.mark.model.users; importar com.lutong.cps.schedule.service.fj.useradcountService; @ContextConfiguration ({"ClassPath: spring-context.xml", "ClassPath: mongodb.xml"}) Usertest {@Resource (name = "userAdCountService") privado userAdCountService userAdCountService; @Test public void testDDAO () {tente {userAdCount userAdCount = new UserAdCount ("hehaitao", "pos001", dateTime.now (). Tostring ("yyyy-mm-dd")); int conting = userAdCountService .getUserAdCount (userAdCount); System.out.println (contagem); } catch (Exceção e) {e.printStackTrace (); }}}Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.