また、この記事についても考えました。まず第一に、私のスキルは良くありません。しかし、私はただ何かを勉強したいです。多くの友人がこれの前に同様の友人を書いており、私はそれらの多くを読んでいますが、説明は十分に詳細ではありません。何人かの友人が提起した質問に対する答えはありません。ここでは、現在の能力に基づいて整理します。そして最後に正常に実行されます。
テスト中に問題が発生しました。
1。org/springフレームワーク/データ/マッピング/コンテキスト/マッピングコントタウンアウェア
2。SRC-Resolve:名前「リポジトリ:リポジトリ」を(n) 'タイプ定義'に解決できません。
上記のすべては、バージョンの不一致によって引き起こされます。特に2番目のエラーでは、JPAに言及したソリューションのいくつかを見ましたが、ここではJPAを使用しませんでした。その後、Spring-Data-Commonsパッケージを交換しましたが、表示されませんでした。
最初に私の開発環境について話させてください:
myeclipse 6.5
Mongodb 2.0.8
春3.0.4
最後に、次の2つがあります(これらの2つのバージョンが間違っている場合、さまざまな複雑な問題が発生する可能性があります)。ここで使用したバージョンを提供します
スプリングダタドキュメント
Spring-Data-Commons
すべてのバージョンを変更する必要があります。以下は、jarダウンロードアドレスです
http://www.springsource.org/spring-data/mongodb
http://www.springsource.org/spring-data/commons
ダウンロードされたバージョンは次のとおりです。
Spring-Data-Commons-Dist-1.4.0.m1
Spring-data-document-1.0.0.m2.zip
これが私のプロジェクトの写真です
その後、開発の旅を始めましょう!
最初に新しいapplication.xml構成ファイルを作成します
<?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. http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/bean <Mongo:Mongo Host = "192.168.0.138" PORT = "27017"/> <Bean ID = "Mongotemplate"> <constructor-arg ref = "mongo"/> <constructor-arg name = "databasename" value = "db"/> <construction-arg name "/> < id = "personrepository"> <プロパティ名= "mongotemplate" ref = "mongotemplate"> </property> </bean> <context:annotation-config/> </bean>
次に、mongodbを動作させるインターフェイスを書きます
/ ** * abstractrepository.java */ package com.mongo.dao; java.util.listをインポートします。 com.mongo.bean.personをインポートします。 /** todo * @author culan * @version todo */public interface abstractrepository {/** * * <b> function:</b> add object * @author culan * @createdate 2012-12-12 11:41:30 */public void insert(人の人); /** * * <b> function:</b> id * @author culan * @createdate 2012-12 11:41:41 */public Person findone(string id); /** * * <b> function:</b> query all * @author culan * @createdate 2012-12-12 16:26:06 */public list <person> findall(); public list <person> findbyregex(string regex); /** * * <b> function:</b>指定されたIDオブジェクトを削除 * @author culan * @createdate 2012-12 16:26:16 */public void remodeone(string id); /** * * <b> function:</b>すべて * @author culan * @createdate 2012-12-12 16:25:40 */public void removeall(); /** * ID * <b> function:</b> * @author culan * @createdate 2012-12 16:25:51 */public void findandModify(string id); }対応するインターフェイス実装クラスを作成します。
/ ** * personrepository.java */ package com.mongo.dao.impl; java.util.listをインポートします。 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; com.mongo.bean.personをインポートします。 com.mongo.dao.abstractrepositoryをインポートします。 / ** * todo * @author culan * @version todo */ public class personrepositoryは、abstractrepository {private mongotemplate mongotemplate; / *(nonjavadoc) * @see com.mongo.dao.abstractrepository#findall() */ @override public list <person> findall(){// dodo auto-generated method stub return getmongotemplate()。find(new query()、person.class); } / *(nonjavadoc) * @see com.mongo.dao.abstractrepository#findandmodify(java.lang.string) * /@Override public void findModify(string id){// todo auto-jenerated method stub // criteria.( "id")。 getMongotemplate()。updateFirst(new Query(criteria.where( "id")。is(id))、new update()。 } / *(nonjavadoc) * @see com.mongo.dao.abstractrepository#findbyregex(java.lang.string) * / @override public list <person> findbyregex(string regex){// todo auto-generated method stub pattern = pattern.compile(regex、pattern.case_insive);基準基準= new Criteria( "name")。regex(pattern.tostring()); return getMongoTemplate()。 } / *(nonjavadoc) * @see com.mongo.dao.abstractrepository#findone(java.lang.string) * / @override public public public firts findone(string id){// todo auto generated method stub returt return getmongotemplate()。 } / *(nonjavadoc) * @see com.mongo.dao.abstractrepository#insert(com.mongo.bean.person) * / @override public void insert(person person){// todo auto generated method stub getmongotemplate()。 } / *(nonjavadoc) * @see com.mongo.dao.abstractrepository#removeall() * / @override public void removeall(){// dodo auto-fideated method stub list <senther> list = this.findall(); if(list!= null){for(person person:list){getMongotemplate()。remover(person); }}} / *(nonjavadoc) * @see com.mongo.dao.abstractrepository#removeone(java.lang.string) * / @Override public void removeone(string id){// todo auto-generated method stub Criteria criteria = criteria.where(id ")。 if(criteria == null){query query = new query(criteria); if(query!= null && getMongotemplate()。findOne(query、person.class)!= null)getMongotemplate()。remove(getMongotemplate()。find(query、person.class)); }} / ** * @return the mongotemplate * / public mongotemplate getMongotemplate(){return mongotemplate; } / ** * @param mongotemplate mongotemplateを設定する * / public void setMongotemplate(mongotemplate mongotemplate){this.mongotemplate = mongotemplate; }}対応する人オブジェクトコードもここに記載されています
/ ** * person.java */ package com.mongo.bean; java.io.serializableをインポートします。 / ** todo * @author culan * @version todo */ public classの人は、シリアル化可能{/ ** * */ private static final long serialversionuid = 36179314308088763429l;プライベート文字列ID;プライベート文字列名;プライベートインクエイジ; public Person(){super(); } public Person(string id、string name、int age){super(); this.id = id; this.name = name; this.age = age; } / ** * @return id * / public string getId(){return id; } / ** * @param id set * / public void setId(string id){this.id = id; } / ** * @return name * / public string getname(){return name; } / ** * @param name name to set * / public void setname(string name){this.name = name; } / ** * @return the age * / public int getage(){return age; } / ** * @param Age age to set * / public void Setage(int age){this.age = age; } / ** * * @param name * @param age * / public person(string name、int age){super(); this.name = name; this.age = age; } public string toString(){return "person [id ="+id+"、name ="+name+"、age ="+age+"]"; }}最後に、テストクラスを書き留めてテストを開始します
/ ** * mongotest.java */ package com.mongo.test; java.util.listをインポートします。 Import org.apache.commons.logging.log; Import org.apache.commons.logging.logfactory; org.springframework.context.applicationcontextをインポートします。 import org.springframework.context.support.classpathxmlapplicationcontext; com.mongo.bean.personをインポートします。 com.mongo.dao.abstractrepositoryをインポートします。 com.mongo.dao.impl.personrepositoryをインポートします。 / ** todo * @author culan * @version todo */ public class mongotest {private static log = logefactory.getlog(mongotest.class.getname());プライベートアブストラクトポジトリpr = null; /** * * <b>関数:</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> function:</b> add * @author culan * @createdate 2012-12-12 16:11:01 */public void Insert(){人P =新しい人( "curian"、27); pr.insert(p); log.debug( "成功して"を追加 "); }/** * * <b> function:</b>入力IDに基づいてオブジェクトを検索 * @author culan * @createdate 2012-12-12 16:24:10 */public void findone(){string id = "50c83cb552c2ceb0463177d6";人P = pr.findone(id); log.debug(p); }/** * * <b> function:</b> query all * @author culan * @createdate 2012-12 16:08:54 */public void listall(){list <person> list = pr.findall(); log.debug( "query resultは次のとおりです。"); for(person p:list){log.debug(p.tostring()); }}/** * * <b> function:</b> test method * @author culan * @createdate 2012-12-12 16:11:37 */public void start(){init(); //入れる(); // listall(); findone(); }/** * <b> function:</b> main function * @author culan * @createdate 2012-12 11:54:30 */public static void main(string [] args){// dodo auto-fienated method stub mongotest t = new mongotest(); t.start(); }}実行後にログが表示されると、問題はありません。
2012-12 16:23:59:debug com.mongo.test.mongotest-開始2012-12-12 16:23:59:info org.support.classpathmlapplicationcontext- org.springframework.context.support.classxmlplipextext.conport。 [12月12日16:23:59 CST 2012];コンテキストのルート階層2012-12 16:23:59:情報org.springframework.beans.factory.xml.xml.xml.xml.xmlbeandefinitionder-クラスパスリソース[ApplicationContext.xml] 2012-12-16:24:00:情報org.springframework.sfeantup.defctuptupturtupturt.deftristcupt.deftristcupt.deftristcupt.springfring.spurt.deftorwork。 org.springframework.beans.factory.support.defaultlistablebeanfactory@12a0f6cでの前身のシングルトン:豆の定義[Mongo、Mongotemplate、PersonRepository、org.springframework.context.annotation.internalconfigurationannotationprocessor、org.springframework.context.annotation.internalautowi RedannotationProcessor、org.springframework.context.annotation.internalrequiredannotationprocessor、org.springframework.context.annotation.internalcommonannotationprocessor];工場階層のルート2012-12-12 16:24:00:debug com.mongo.test.mongotest-person [id = 50c83cb5552c2ceb0463177d6、name = cuiran、age = 27]
ここでデモソースコードを添付してください:デモ
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。