Ich habe auch über diesen Artikel nachgedacht, zuallererst sind meine Fähigkeiten nicht gut. Aber ich lerne einfach gerne etwas. Weil viele Freunde zuvor ähnliche geschrieben haben und ich viele von ihnen gelesen habe, aber die Erklärung ist nicht ausführlich genug. Es gibt keine Antwort auf die Fragen einiger Freunde. Hier sortiere ich es basierend auf meinen aktuellen Fähigkeiten. Und schließlich erfolgreich rennen.
Während des Tests trat ein Problem auf:
1. org/SpringFramework/Daten/Mapping/Kontext/MappingContextaware
2. SRC-RESOLVE: Den Namen 'Repository: Repository' auf eine (n) 'Typdefinition' kann nicht behoben werden.
Alle oben genannten werden durch Versionsangriffe von Versionen verursacht. Vor allem der zweite Fehler, den ich einige der erwähnten Lösungen von JPA gesehen habe, aber ich habe hier JPA nicht verwendet. Später ersetzte ich das Paket für die Federdaten-Kommunikation und erschien nicht.
Lassen Sie mich zuerst über meine Entwicklungsumgebung sprechen:
myeclipse 6.5
MongoDB 2.0.8
Feder 3.0.4
Schließlich gibt es die folgenden zwei (wenn diese beiden Versionen falsch sind, treten wahrscheinlich verschiedene und komplizierte Probleme auf). Hier werde ich die Version geben, die ich verwendet habe
Springdaten-Dokument
Federdaten
Alle Versionen müssen geändert werden. Das Folgende ist die Jar -Download -Adresse
http://www.springource.org/spring-data/mongodb
http://www.springource.org/spring-data/commons
Die heruntergeladenen Versionen sind:
FRINDE-DATA-DIST-DIST-1.4.0.M1
Springdaten-Dokument-1.0.0.m2.zip
Hier sind Bilder meines Projekts
Dann starten Sie unsere Entwicklungsreise!
Erstellen Sie zuerst eine neue Anwendung.xml -Konfigurationsdatei
<? 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:/wwwwww.springFramework.org/Schema/mga/mga/m.m.springframework http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.sprungframe.org/schema/beans/pring-bans-bringframe.- <Mongo: Mongo Host = "192.168.0.138" port = "27017"/> <bean id = "mongotemplate"> <constructor-arg ref = "mongo"/> <constructor-arg name = "databasename" value = "db"/> <constructor-arg name " <bean id = "personRepository"> <Eigenschaft name = "mongotemplate" ref = "mongotemplate"> </property> </bean> <context: Annotation-config/> </beans>
Schreiben Sie dann die Schnittstelle, die MongoDB betreibt
/ ** * abstractrepository.java */ package com.mongo.dao; importieren java.util.list; import com.mongo.bean.person; /** * todo * @author culan * @version todo */public interface abstraprepository {/** * * <b> Funktion: </b> Objekt hinzufügen * @author culan * @createdate 2012-12-12 11:41:30 */public void (Person); /** * * <b> Funktion: </b> Objekt finden von id * @author culan * @createdate 2012-12 11:41:41 */public Person findOne (String-ID); /** * * <b> Funktion: </b> Abfragen Sie alle * @Author Culan * @Createdate 2012-12-12 16:26:06 */public List <Person> findall (); öffentliche Liste <Person> findByRegex (String Regex); /** * * <b> Funktion: </b> Löschen Sie das angegebene ID-Objekt * @Author Culan * @Createdate 2012-12 16:26:16 */public void Removal (String ID); /** * * <b> Funktion: </b> Alle * @Author Culan * @Createdate 2012-12-12 16:25:40 */public void removeall (); /** * Finden und ändern nach ID * <B> Funktion: </b> * @author culan * @createdate 2012-12 16:25:51 */public void findandModify (String-ID); } Schreiben Sie die entsprechende Schnittstellen -Implementierungsklasse:
/ ** * PersonRepository.java */ package com.mongo.dao.impl; importieren java.util.list; Import Java.util.Regex.Pattern; import org.springframework.data.document.mongodb.Mongotemplate; import org.springframework.data.document.mongodb.Query.Criteria; import org.springframework.data.document.mongodb.query.update; import org.springframework.data.document.mongodb.query.update; import com.mongo.bean.person; import com.mongo.dao.abstractrepository; / ** * todo * @author culan * @Version todo */ Public Class PersonRepository implementiert Abstraprepository {private mongotemplate mongotemplate; / * (Nicht-Javadoc) * @see com.mongo.dao.abstractrepository#findall () */ @Override publiclist <person> findall () {// todo auto generierte Methode Stub return getMongotemplate (). Find (new query (), person.class); } / * (nicht-javadoc) * @see com.mongo.dao.abstractrepository#findandModify (java.lang.String) * /@Override public void findandModify (Streicher ID) {// Todo Auto-Generated-Methode-Methode Stub //. getMongotemplate (). UpdateFirst (neue Abfrage (Kriterienwhere ("ID"). IS (ID)), New Update (). Inc ("Alter", 3)); } / * (nicht-javadoc) * @see com.mongo.dao.abstractrepository#findByRegex (java.lang.String) * / @Override öffentliche Liste <Person> findByRegex (String Regex) {// todo automatisch generiertes Methode Stub Muster = muster = mustermuster = mustermuster = mustermuster = mustermuster = mustermuster = mustermuster = mustermuster = mustermuster = mustermuster = mustermuster (regex, muster); Kriterienkriterien = neue Kriterien ("Name"). Regex (muster.ToString ()); return getMongotemplate (). Find (neue Abfrage (Kriterien), Person.Class); } / * (nicht-javadoc) * @see com.mongo.dao.abstractrepository#findOne (java.lang.String) * / @Override public Person findOne (String id) {// todo auto-generierte Methode Return GetMongotem (). } / * (nicht-javadoc) * @see com.mongo.dao.abstractrepository#insert (com.mongo.bean.person) * / @Override public void Insert (Person Person) {// todo auto-generierter Methode Stub GetMongotemplate (). (Person); } / * (nicht javadoc) * @see com.mongo.dao.abstractrepository#removeall () * / @Override public void renoveall () {// Todo automatisch generierte Methode Stub-Liste <person> list = this.findAll (); if (list! }}} / * (nicht-javadoc) * @see com.mongo.dao.abstractrepository#removeOne (java.lang.String) * / @Override public void remyEne (String id) {// todo auto-generatisierte Methode Stub-Kriterien Kriterien Kriterien = Kriterien ("id"). if (kriterien == null) {query query = new query (kriterien); if (query! }} / ** * @return die Mongotemplate * / public mongotemplate getMongotemplate () {return Mongotemplate; } / ** * @param mongotemplate Die Mongotemplate zum Setzen * / public void setMongotemplate (Mongotemplate Mongotemplate) {this.mongotemplate = mongotemplate; }} Der entsprechende Objektcode der Person wird auch hier angegeben
/ ** * person.java */ package com.mongo.bean; importieren java.io.serializable; / ** * todo * @author culan * @Version todo */ public class Person implementiert serialisierbare {/ ** * */ private statische endgültige lange Serialversionuid = 3617931430808763429L; private String -ID; privater Zeichenfolge Name; privates int Alter; public Person () {Super (); } public Person (String -ID, String -Name, int Alter) {Super (); this.id = id; this.name = name; this.age = Alter; } / ** * @return die ID * / public String getId () {return id; } / ** * @param id Die ID zum Setzen von * / public void setID (String -ID) {this.id = id; } / ** * @return den Namen * / public String getName () {return name; } / ** * @param name den namens zu setzenden * / public void setName (String name) {this.name = name; } / ** * @return das Alter * / public int getage () {return ay; } / ** * @Param Alter Das Alter zu festlegen * / public void Setage (int Alter) {this.age = Alter; } / ** * * @param name * @param ay * / public Person (String -Name, int age) {super (); this.name = name; this.age = Alter; } public String toString () {return "person [id ="+id+", name ="+name+", ay"+alter+"]"; }} Schreiben Sie schließlich unsere Testklasse auf und beginnen Sie mit dem Testen
/ ** * mongotest.java */ package com.mongo.test; importieren java.util.list; import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.classPathXmlApplicationContext; import com.mongo.bean.person; import com.mongo.dao.abstractrepository; import com.mongo.dao.impl.personrepository; / ** * todo * @author culan * @Version todo */ public class mongotest {private static log log = logFactory.getLog (mongotest.class.getName ()); private Abstraprepository pr = null; /** * * <b> Funktion: </b> * @author culan * @createdate 2012-12-12 16:08:02 */public void init () {log.debug ("Start Start"); ApplicationContext ctx = new classPathXmlApplicationContext ("applicationContext.xml"); pr = (personRepository) ctx.getbean ("personRepository"); }/** * * <b> Funktion: </b> add * @author culan * @createdate 2012-12-12 16:11:01 */public void Insert () {Person p = new Person ("curian", 27); pr.insert (p); log.debug ("erfolgreich hinzugefügt"); }/** * * <b> Funktion: </b> Suchobjekt basierend auf der Eingabe-ID * @author culan * @createdate 2012-12-12 16:24:10 */public void findOne () {String id = "50c83cb552c2ceb04631777d6"; Person p = pr.findone (id); log.debug (p); }/** * * <b> Funktion: </b> alle * @author culan * @createdate 2012-12 16:08:54 */public void listall () {list <Person> list = pr.findall (); log.debug ("Abfrageergebnis ist wie folgt:"); für (Person p: list) {log.debug (p.toString ()); }}/** * * <b> Funktion: </b> Testmethode * @author culan * @createdate 2012-12-12 16:11:37 */public void start () {init (); //einfügen(); // listAll (); findOne (); }/** * <b> Funktion: </b> Hauptfunktion * @author culan * @createdate 2012-12 11:54:30 */public static void main (String [] args) {// todo automatisch generierte Methode Stub Mongotest t = neuer mongotest (); t.start (); }}Wenn das Protokoll nach dem Auslauf erscheint, gibt es kein Problem.
2012-12 16: 23: 59: Debugg Comongo.test.Mongotest-Start Start 2012-12-12 16: 23: 59: info org.springframework 12. Dezember 16:23:59 CST 2012]; root of context hierarchy 2012-12 16:23:59:INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [applicationContext.xml] 2012-12-12 16:24:00:INFO org.springframework.beans.factory.support.defaultListableBeanFactory - Voranbauende Singletons in org.springframework.beans.factory.support.defaultListableBeanFactory@12a0f6c: Definition von Boans [Mongo, Mongotemplate, PersonRepository, org.springframework.context.annotation.internalConfigurationAnnotationsprozessor, org.springframework.context.annotation.internalautowi redannotationsprozessor, org.springframework.context.annotation.internalRiredAnnotationProcessor, org.springframework.context.annotation.internalcommonannotationsprozessor]; Wurzel der Fabrikhierarchie 2012-12-12 16: 24: 00: Debugg Comongo.test.Mongotest-Person [ID = 50C83CB552C2CEB0463177D6, Name = Cuiran, Alter = 27]
Fügen Sie den Demo -Quellcode hier bei: Demo
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.