Kata pengantar
Fokus artikel ini adalah untuk mengintegrasikan MongoDB dan muncul ke dalam proyek, menemukan masalah dalam praktik, melacak masalah, dan kemudian menyelesaikan masalah. Saya tidak akan mengatakan banyak hal di bawah ini, mari kita lihat perkenalan terperinci bersama.
1. Persiapan
2. Karakteristik
3. Paket ketergantungan
<dependency> <GroupId> org.springframework.data </groupid> <ArTifactId> Spring-data-mongoDb </artifactid> <version> 1.5.0.release </version> </Artifactid> <groupid> org.slf4j </groupid> <ArtifactId> <groupid> org.slf4j </groupid> <Artifactid> <groupid> org.slf4j </groupid> <Artifactid> <version> 1.5.10 </version> </gandendency>
Ketergantungan terkait musim semi
<!-Dependensi terkait web Spring-> <dependency> <GroupId> org.springframework </groupId> <ArtiFacTId> Spring-WEB </artifactid> <version> $ {spring.version} </versi> </dependency> <sependency> <groupid> org.springFringfruly </Versi> </Dependency> <Arpidency> <Roupure> org.springfrework </versi> </groupid> <ArpID> <version> 3.1.2.release </version> </gandendency> <!-Dependensi tes musim semi-> <dependency> <GroupId> org.springframework </groupid> <ArtifactId> tes musim semi </artifactid> <version> 4.3.1.release </version> </dependensi>4. Mengintegrasikan MongoDB
[Catatan: Silakan merujuk ke artikel saya tentang menambahkan manajemen izin di MongoDB: Aktifkan otentikasi izin di mongdb]
MongoDB.Properties
Mongo.hostport = 172.16.4.166: 27017mongo.dbname = ad_api_countmongo.username = hehaitaomongo.password = hehaitao Mongo.ConnectionPerHost = 8mongo.threadsallowedtoBlockForConnectionMultiPlier = 4#/u8fde/u63a5/u8d85/u65f6/ u65f6/u95f4mongo.connecttimeout = 1000#/u7b49/u5f85/u65f6/u95f4mongo.maxwaittime = 1500mongo.autoconnectretr y = truemongo.socketkeepalive = true#socket/u8d85/u65f6/u65f6/u95f4mongo.socketTimeout = 1500mongo.slaveok = true
mongodb.xml
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls 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.sprfring http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org.orgal Muat file konfigurasi properti MongoDB-> <Context: Properti-placeHolder Location = "ClassPath: MongoDB.Properties" Abaikan-tidak dapat diselesaikan = "true"/> <!-Tentukan objek Mongo, sesuai dengan Mongo dalam paket JAR resmi MongoDB. Replica-set Setel alamat IP dan port replika cluster-> <mongo: mongo id = "mongo" replica-set = "$ {mongo.hostport}"> <Mongo: Options Connections-per-host = "$ {Mongo.ConnectionPerHost}" Threads-Impalled-to-block-for-connection-multiplier = "$ {mongo.threadsallowedtoBlockForConnectionMultiplier}" connect-timeout = "$ {mongo.connecttimeout}" max-wait-time = "$ {mongo.maxwaittime}" auto-connetretation "" $ "$ {Mongo.MaxWaitTime}" auto-connetretation "" $ "$ {Mongo.MaxWaitTime}" auto-connetretation " socket-mondar-mandir = "$ {mongo.socketkeepalive}" socket-timeout = "$ {mongo.socketTimeout}" slave-ok = "$ {mongo.slaveok}" write-number = "1" write-timeout = "0" write-flync = "true"/</mongo: mongo: mongo: mongo: mongo: mongo: mong: mongo: mong: mongo: mong: mongo: mongo: mongo: mongo: mongo: mong: mongo: mong: mongo: mongo: mongo: mong: mongo: mong: mongo: mong: mongo: mong: mongo: mong: mongo {0 id = "mgfactory" dbname = "$ {mongo.dbname}" username = "$ {mongo.username}" kata sandi = "$ {mongo.password}" mongo-ref = "mongo" /<bean id = "MongoTemplate"> <konstruktor-pesawat = "" "" "mongacory" "MongoCory =" Mongacory "MongoCory" MongoCory "> </tagel> </tobel>Spring-Contex.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://www.springframework.org/scema/www.spramework.org/scema/contpema/www.spramework.org/orgaMema/contpa/context" xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: Tugas = "http:/schema.aop" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spramework.org/schema/beans http://www.spramework http://www.springframework.org/schema/tx http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/task http:/www.spramework.org/schema/task:task:tak <aop:aspectj-autopproxy proxy-target-class="true"/> <context:annotation-config/> <!-- Scan all classes under com.lutongnet --> <context:component-scan base-package="com.lutong.cps"> <context:exclude-filter type = "annotation" expression = "org.springframework.steretype.Controller"/> </konteks: component-scan> <import resource = "mongoDb.xml"/> </tobe>
5. Implementasi Kode
Implementasi Dasar MongoDBService
/** * Nama File: MongoDBService.java * Paket: com.lutongnet.ad.service * Deskripsi: TODO * Penulis: Zhangfj * Tanggal: 2012-11-29 * Versi: v1.0 */paket com.lutong.cps.schedule.service.fj; impor org.springfring.cps.schedule.service.fj; impor org.sfringfringfring.cps.schedule.service.fj; impor org.sfringfringfring.spps.schedule.service.fj; Impor org.sfringfringfring.spps.schedule.service.fj; Impor org.sramram.springfring.cps.schedule.service.fj; Impor org.sramram.springfring.cps. org.springframework.context.support.classpathxmlapplicationContext; impor org.springframework.data.mongodb.core.mongotemplate; impor org.spramework.data.mongodb.core.coery.query.query.query; org.sprramework.data.mongodb.core.qerery.query.query.query; org.spramework.data @Author zhangfj * */ @service ("mongoDbservice") kelas publik mongoDbservice {/ * @resource (name = "mongotemplate") classe mongoTemplate mongoTemplate; temuan {@param @puery {@param @puery * @puersclass * @puby {@param toery * ApplicationContext Context = new ClassPathXMLapPlicationContext ("mongoDB.xml"); Mongotemplate mongotemplate = (mongotemplate) context.getBean ("mongotemplate"); // Anda dapat secara langsung menghubungi return mongotemplate.findone (kueri, entityclass); }}Mewarisi kelas useradcountservice
/** * Nama File: useradcountservice.java * Paket: com.lutongnet.ad.service * Deskripsi: TODO * Penulis: Zhangfj * Tanggal: 2012-11-29 * Versi: v1.0 */packring com.lutong.cps.schedule.service.fj; impor org.springfringfringfringfringfringfringfringfring.cps.sche.service.fj; import orgringfringfringfringfringfringfringfring.spring.cringfring. org.springframework.data.mongodb.core.query.query; impor org.springframework.stereotype.service; import com.lutong.cps.schedule.entity.useradcount;/** * @Author zhangfj * * service ("service (" servercount; MongoDBService { / ** * Dapatkan jumlah tampilan iklan tunggal, dan jika tidak dapat ditanya, itu akan mengembalikan 0 * * @param adcode * @return int * / int getUserAdcount (userAdcount adcode) {kriteria kriteria = kriteria baru (); criteria.andoperator (kriteria.where ("userad"). is (adcode.getUserad ()), kriteria.where ("adcode"). is (adcode.getAdcode ()), kriteria.where ("countDate"). is (adcode.getCountdate ()); Kueri kueri = kueri baru (kriteria); UserAdcount result = findOne (kueri, useradcount.class); if (null! = hasil) {return result.getTimesCount (); } return 0; }}Entity Class UserAdcount
Paket com.lutong.cps.schedule.entity; impor java.util.date; impor org.springframework.data.annotation.PersistenceConstructor; impor org.springframework */@Document (collection = "userAdcount") kelas publik UserAdcount {private int timescount; / *** Akun Pengguna*/ Private String UserAd; Private String Adcode; Private String Countdate; Tanggal Privat EXPIREAT; @PersistenceConstructor Public UserAdCount (int timescount, string userad, string adcode, string countDate, tanggal kedaluwarsa) {this.timescount = timescount; this.userad = userad; this.adcode = adcode; this.countDate = Countdate; this.expireat = kedaluwarsa; } UserAdCount publik (string userad, string adcode, string countDate) {this.userad = userad; this.adcode = adcode; this.countDate = Countdate; } UserAdCount publik (String UserAd, String AdCode, String CountDate, Date Expireat) {this.userad = userad; this.adcode = adcode; this.countDate = Countdate; this.expireat = kedaluwarsa; } UserAdcount publik (String CountDate) {this.countDate = CountDate; } public int getTimesCount () {return timescount; } public void SetTimesCount (int timescount) {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; } Tanggal Publik getExpireat () {return expireat; } public void setExpireat (tanggal kedaluwarsa) {this.expireat = expireat; }}Akhirnya, tulis kelas tes untuk mengujinya
Impor java.util.list; impor javax.annotation.resource; impor org.junit.test; impor org.junit.runner.runwith; impor org.springframework.test.context.contextConfiguration; impor org.springframework.test.context com com.web.modules.mark.model.users; import com.lutong.cps.schedule.service.fj.useradcountservice; @contextConfiguration ({"classpath: spring-context.xml", "classpath: mongodb.xml"})@ {@Resource (name = "userAdcountService") private userAdcountService userAdcountService; @Test public void testDAO () {coba {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 (); }}}Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.