Prefacio
El enfoque de este artículo es integrar MongoDB y surgir en el proyecto, descubrir problemas en la práctica, rastrear problemas y luego resolver problemas. No diré mucho a continuación, echemos un vistazo a la introducción detallada juntos.
1. Preparación
2. Características
3. Paquete de dependencia
<Spendency> <MoupRupid> org.springframework.data </groupid> <artifactId> spring-data-MongoDB </artifactId> <versión> 1.5.0.release </verversion> </pendency> <pendency> <MoupRoupId> org.slf4j </groupId> <AtifactId> slf4j-log4j12 </artifactid> <Versión> 1.5.10 </versión> </pendency>
Dependencias relacionadas con la primavera
< <Versión> 3.1.2.Release </versión> </pendency> <!-Spring Test Dependencies-> <Spendency> <ProupID> org.springframework </groupid> <artifactid> spring-test </artifactid> <versión> 4.3.1.release </versión> </dependencia>
4. Integrar MongoDB
[Nota: Consulte mi artículo sobre cómo agregar gestión de permisos en MongoDB: Habilitar la autenticación de permiso en MongDB]
MongoDB.Properties
Mongo.hostport = 172.16.4.166: 27017mongo.dbname = AD_API_COUNTMONGO.USERNAME = hehaitaomongo.password = hehaitao Mongo.ConnectionsPerhost = 8Mongo.ThreadsAllowedToBlockForConnectionMultiplier = 4#/U8FDE/U63A5/U8D85/U65F6/ u65f6/u95f4mongo.connecttimeout = 1000#/u7b49/u5f85/u65f6/u95f4mongo.maxwaittime = 1500mongo.autoconnectretretr y = TruMongo.SocketKeepalive = True#Socket/U8D85/U65F6/U65F6/U95F4Mongo.SocketTimeout = 1500Mongo.SlaveOK = True
mongodb.xml
<? xml versión = "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.1.xsd http://www.springframework.org/schement 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-Beansd "1.1.1.1.1.1.1.1.1.1. < Réplica Establecer la dirección IP y el puerto de la réplica del clúster-> <Mongo: Mongo id = "Mongo" replica-set = "$ {Mongo.hostport}"> <Mongo: Opciones Connections-Perhost = "$ {Mongo.connectionsPerhost}" " THRESS-Allowed-To-Block-For-Connection-Multiplier = "$ {Mongo.ThreadSallowedToBlockForConnectionMultiplier}" Connect Timeout = "$ {Mongo.ConnecttimeOut}" Max-Wait-Time = "$ {Mongo.MaxwaitTime}" auto-confonnect-retry = "$ {Mongo.autoconnectretry}" Socket-sábana-alive = "$ {mongo.socketkekeepalive}" Socket Timeout = "$ {Mongo.socketTimeout}" Slave -k = "$ {Mongo.slavook}" Write-Number = "1" Write TimeOut = "0" 0 "Write-FeM" < /Mongo: Mongo> <Mongo: db-Factory id = "mgFactory" dbname = "$ {mongo.dbname}" username = "$ {Mongo.username}" contraseña = "$ {mongo.password}" Mongo-ref = "Mongo" /> <bean id = "Mongotemplawling" name = "MongoDBFactory" ref = "mgfactory"/> </reme> </les>Spring-contex.xml
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://www.springframework.org/schema/context" " 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 http://www.springframework.org/schema/Beans/Spring-Beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframwork.org/schema/context/spring-context-3.1.1.1.xsds http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframe.org/schema/aop http://wwww.springffrffrffrffram http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd ">" <AOP: SuppectJ-AutopProxy Proxy-Target-Class = "True"/> <context: annotation-config/> <!-Escanear todas las clases en com.lutongnet-> <context: component-scan base-package = "com.lutong.cps"> <context: context: type-flilter-"anotation" expresión = "org.spreingfringframe </context: componente-scan> <importe resource = "mongodb.xml"/> </beans>
5. Implementación del código
Implementación básica del servicio MongoDbs
/** * Nombre del archivo: MongoDbservice.java * Paquete: com.lutongnet.ad.service * Descripción: TODO * Autor: Zhangfj * Fecha: 2012-11-29 * Versión: V1.0 */paquete com.lutong.cps.schedule.service.fj; import org.springframework.context.support.classpathxmlaPlaPlicationContext; import org.springframework.data.mongodb.core.mongoTemplate; import org.springframework.data.mongoDb.core.query.Query; import org.springframework.stereotype.service; zhangfj * */ @Service ("MongoDBService") clase pública MongoDBService {/ * @resource (name = "MongoTemplate") MongoTemplate protegido MongoTemplate; *//** * @param Query * @ @EntityClass * @return t */public <T> t hindone (QUIERY, CLASE <T> EntityCtent. context = new ClassPathXMLApPlicationContext ("MongoDB.xml"); MongoTemplate MongoTemplate = (MongoTemplate) context.getBean ("MongoTemplate"); // puede llamar directamente a return mongotemplate.findone (consulta, entityclass); }}Heredar la clase UserAdCountService
/** * Nombre del archivo: userAdCountService.java * paquete: com.lutongannnet.ad.service * Descripción: TODO * Autor: Zhangfj * Fecha: 2012-11-29 * Versión: V1.0 */paquete com.lutong.cps.schedule.service.fj; import org.springframework.data.MongoDb.core.query.Query; import org.springframework.stereotype.service; import com.lutong.cps.schedule.entity.useradcount;/** * @author zhangfj * */ @Service ("useradCountService") MongoDBService { / ** * Obtenga el número de vistas de un solo anuncio, y si no se puede consultar, devolverá 0 * * @param adcode * @return int * / public int getUserAdCount (userAdCount adcode) {criteria criteria = new criteria (); criterio.AnPerator (criterio.where ("userad"). is (adcode.getUserad ()), criterio.where ("adcode"). is (adcode.getadcode ()), criteria.where ("countDate"). IS (adcode.getCountDate ()); Consulta consulta = nueva consulta (criterios); UserAdCount result = FindOne (Query, UserAdCount.class); if (null! = resultado) {return result.gettimesCount (); } return 0; }}Class de entidad UserAdCount
paquete com.lutong.cps.schedule.entity; import java.util.date; import org.springframework.data.annotation.persistenceConstructor; import org.springframework.data.mongoDb.core.mapping.Document;/*** Mongo estadísticas dedicadas a las estadísticas de un número individual de un usuario único* */@Documento (colección = "UserAdCount") Public Class UserAdCount {private INT TimesCount; / *** Cuenta de usuario*/ private String Userad; cadena privada adcode; Condado de cadenas privadas; Fecha privada Experiencia; @PersistenceConstrucor público UserAdCount (intimiocount, string userad, string adcode, string countDate, fecha caducidad) {this.TimesCount = TimesCount; this.userad = userad; this.AdCode = adcode; this.countDate = CountDate; this.expeat = 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 Experesat) {this.userad = userAd; this.AdCode = adcode; this.countDate = CountDate; this.expeat = expireat; } public UserAdCount (String CountDate) {this.countDate = countDate; } public int getTimesCount () {return TimesCount; } public void setTimesCount (intimiocount) {this.TimesCount = TimesCount; } 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; } fecha pública getExpeat () {return expirat; } public void setExpeAt (fecha de cadena) {this.expeat = expireat; }}Finalmente, escriba una clase de prueba para probarlo
import java.util.list; import javax.annotation.resource; import org.junit.test; import org.junit.runner.runwith; import og.springframework.test.context.contextconfiguration; import com.acts.web.modules.mark.model.users; import com.lutong.cps.schedule.service.fj.useradcountService; @ContextConfiguration ({"classpath: spring-context.xml", "classPath: mongodb.xml"})@runwith {@Resource (name = "UserAdCountService") Private UserAdCountService UserAdCountService; @Test public void testDao () {try {userAdCount userAdCount = new UserAdCount ("Hehaitao", "Pos001", Datetime.now (). ToString ("yyyy-mm-dd")); int count = userAdCountService .getUserAdCount (userAdCount); System.out.println (Count); } catch (Exception e) {E.PrintStackTrace (); }}}Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.