スプリングフレームワークの7つの主要なモジュールの簡単な紹介
春のMVCモジュールコードの詳細な説明
ORMモジュールは、Hibernate、JDO、ToplinkibatisなどのORMフレームワークをサポートしています。
ORMモジュールは、dom4j.jar、antlr.jar、その他のパッケージに依存しています
春には、冬眠リソースは春の管理、冬眠、およびそのセッションの構成とその他の知識の春に特別な豆であり、春はインスタンス化と破壊に責任があります。したがって、DAOレイヤーは冬眠装置を継承するだけで、HibernateのAPIに対処する必要はなく、Hibernateのセッションとトランザクションをオンまたはオフにする必要はありません。 Springはこれらのオブジェクトを自動的に維持します
パブリックインターフェイスicatdao {public void createcat(cat cat);パブリックリスト<Cat> listCats(); public int getCatsCount(); Public Cat FindCatbyName(文字列名); } import org.springframework.orm.hibernate3.support.hibernatedaosupport; Public Class Catdaoimplは、冬眠装備のcreatecat(cat cat){this.gethibernateTemplate()。永続(cat); } public list <Cat> listCats(){これを返します。 gethibernateTemplate()。find( "select cfrom cat c"); } public int getCatscount(){number n =(number)this.getSession(true).createquery( "selectcount(c)from cat c")。 n.intvalue()を返します。 } public cat findcatbyname(string name){list <cat> catlist = this.gethibernateTemplate()。 if(catlist.size()> 0)catlist.get(0); nullを返します。 }}<bean id = "SessionFactory" Destrow-Method = "Destroy"> <Property Name = "DataSource" Ref = "DataSource"/> <! - このパッケージに基づくすべてのクラスはエンティティクラスとしてロードされます - > <プロパティ名= "AnnotatedPackages" value = "classpath:/com/clf/orm"/> <プロパティ= <value> com.clf.spring.orm.cat </value> <value> com.clf.spring.orm.dog </value> </list> <プロパティname = "hibernateproperties"> <props> <prop key = "hiberante.dialect"> org.hibernate.dialect.mysqldialect </prop> <prop key = "hibernate.show_sql"> true </prop> <prop key = "hibernate.format_sql"> true </prop> <prop key = "hibernate.hbm2ddl.auto"> create </prop> </props> </property> <bean id = "
XMLで構成されたエンティティクラスを使用する場合は、に変更します
<bean id = "sessionfactory" Destrow-method = "Destroy"> <Property name = "MappingResources"> <list> <value> classpath:/com/clf/orm/cat.hbm.xml </value> </list>…</bean>
SpringはデフォルトでDAOレイヤーのトランザクションを追加し、DAO層の各メソッドは1つのトランザクションです。 Spring+Hibernateプログラミングでは、通常のプラクティスは、DAOレイヤーにサービスレイヤーを追加し、サービスレイヤーにトランザクションを構成することです。
public Interface icatservice {public void createcat(cat cat);パブリックリスト<Cat> listCats(); public int getCatsCount(); }階層的アプローチは、プログラムがサービスレイヤーを呼び出し、サービスレイヤーがDAOレイヤーを呼び出し、DAOレイヤーがHibernateを呼び出してデータアクセスを実現することです。原則として、国境を越えたアクセスは許可されていません。レイヤー化により、ビジネス階層がより明確になります
Public Class CatServiceImpl Icatservice {private idao catdao; public idao getcatdao(){return catdao; } public void setcatdao(idao dao){this.catdao = dao; } public void createcat(cat cat){catdao.createcat(cat); } public list <Cat> listCats(){return catdao.listcats(); } public int getCatscount(){return catdao.getCatscount(); }}次に、サービスレベルでトランザクション管理を構成します
<! - トランザクションマネージャー - > <bean id = "hibernatetransactionmanager"> <プロパティ名= "sessionfactory" sessionfactory "/> </bean> <! - トランザクション管理ルール - > <bean id =" hibernateTransactionattributesource "> <プロパティname ="プロパティ> < <PropkeyPropkey = "*"> propgation_required </prop> </property> </bean> <! - トランザクションファクトリーエージェントクラス、サービス実装クラス、トランザクションマネージャー、およびトランザクション管理ルールを組み立てます - > <bean id = "catservice"> <プロパティ名= "トランザクションマネージャー" name = "catdao" ref = "catdao"/> </bean> </property> <property name = "transactionattributesource" ref = "hibernatetransactionattributesource"/> </bean> </bean>
要約します
上記は、SpringのORMモジュールコードのすべての詳細な説明です。私はあなたが助けることができることを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!