S2Dao.NET TOPページへ
S2Dao.NET - Diconファイル
Daoをdiconファイルに定義して、コンテナにコンポーネント定義します。S2Dao.NETの機能を利用するためには登録したDaoに対して、
S2Dao.NETのインターセプターを適用します。diconファイルの詳しい設定方法については、
DIContainerのドキュメントを参照して下さい。
S2Dao.NETの機能を使用するには登録したDaoに対して、
Seasar.Dao.Interceptors.S2DaoInterceptorをaspectタグで指定します。
これはS2Dao.NETがAOPを利用して作られている為です。
AOPについてはAOPのドキュメントを参照して下さい。
diconファイルは以下のように、Daoを登録するdiconファイル(Dao.dicon)と、
S2Dao.NETのコンポーネントを登録するdiconファイル(S2Dao.dicon)の2種類用意します。
Dao.dicon
<components>
<include path="S2Dao.dicon"/>
<component class="Example.Dao.IEmployeeDao">
<aspect>S2Dao.Interceptor</aspect>
</component>
</components>
S2Dao.dicon
<components namespace="S2Dao">
<include path="Ado.dicon" />
<component class="Seasar.Extension.ADO.Impl.BasicDataReaderFactory" />
<component class="Seasar.Extension.ADO.Impl.BasicCommandFactory" />
<component class="Seasar.Dao.Impl.FieldAnnotationReaderFactory" />
<component class="Seasar.Dao.Impl.DaoMetaDataFactoryImpl" />
<component name="Interceptor"
class="Seasar.Dao.Interceptors.S2DaoInterceptor"/>
</components>
Ado.diconについては
データベース接続のAdo.diconを参照して下さい。
DaoMetaDataFactoryImplはS2DaoInterceptorのコンストラクタの引数となるので記述しておきます。
DaoMetaDataFactoryImplはIDataSource, ICommandFactory, IDataReaderFactoryの3つの型がコンストラクタの引数となります。
IDataSourceの実装クラスはAdo.diconに定義されているものとします。ICommandFactoryの実装クラスはBasicCommandFactoryです。
IDataReaderFactoryの実装クラスはBasicDataReaderFactoryです。それぞれdiconファイルに定義しておきます。
SQLファイルのEncodingをDaoMetaDataFactoryImplのSqlFileEncodingプロパティで指定することができます。
デフォルトではSystem.Text.Encoding.Defaultで取得できるEncodingになっています。
SqlFileEncodingプロパティは文字列で指定します。指定できる文字列は
Encodingクラスのリファレンス
を参照して下さい。
以下はSQLファイルのEncodingにutf-8を指定するサンプルです。
S2Dao.dicon
<components namespace="S2Dao">
<include path="Ado.dicon" />
<component class="Seasar.Extension.ADO.Impl.BasicDataReaderFactory" />
<component class="Seasar.Extension.ADO.Impl.BasicCommandFactory" />
<component class="Seasar.Dao.Impl.DaoMetaDataFactoryImpl">
<property name="SqlFileEncoding">"utf-8"</property>
</component>
<component name="Interceptor"
class="Seasar.Dao.Interceptors.S2DaoInterceptor"/>
</components>
|