SqlSessionFactoryBean

6354 ワード

SqlSessionFactoryBean
基本的なMyBatisでは、セッションファクトリはSqlSessionFactoryBuilderを使用して作成できます.一方、MyBatis-springでは、SqlSessionFactoryBeanを使用して置き換えられます.
Setup
工場beanを作成するには、SpringのXMLプロファイルに次のコードを配置します.
 id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   name="dataSource" ref="dataSource" />

SqlSessionFactoryBeanがSpringのFactoryBeanインタフェースを実装していることに注意してください(Springドキュメントの3.8章を参照).これはSpringによって最終的に作成されたbeanがSqlSessionFactoryBean自体ではないことを示しています.ファクトリクラスのgetObject()が返すメソッドの結果です.この場合、Springはアプリケーションの起動時にSqlSessionFactoryオブジェクトを作成し、SqlSessionFactoryという名前で保存します.Javaでは、同じコードは次のとおりです.
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
SqlSessionFactory sessionFactory = factoryBean.getObject();

一般的なMyBatis-Springの使い方では、SqlSessionFactoryBeanやそれに対応するSqlSessionFactoryを直接使用する必要はありません.逆に、セッションファクトリは、MapperFactoryBeanまたはSqlSessionDaoSupportを拡張したDAO(Data Access Object、データ・アクセス・オブジェクト、翻訳者注)に注入されます.
ツールバーの
SqlSessionFactoryには、JDBCのDataSourceという個別の必須属性があります.これは任意のDataSourceであり、他のSpringデータベース接続と同じ構成である必要があります.
一般的なプロパティの1つはconfigLocationで、MyBatisのXMLプロファイルパスを指定するために使用されます.基本的なMyBatis構成を変更する必要がある場合は、これが必要な場所です.通常、これはまたはの部分です.
このプロファイルは完全なMyBatisプロファイルである必要はありません.正確には、任意の環境では、データ・ソースとMyBatisのトランザクション・マネージャは無視されます.SqlSessionFactoryBeanは独自の値を作成し、これらの値を使用してMyBatisのEnvironmentをカスタマイズする場合に必要です.
MyBatisマッパーXMLファイルがマッパークラスと同じパスで存在しない場合、もう1つのプロファイルが必要な理由はそれです.この構成を使用するには、2つの選択肢があります.1つ目は、MyBatisのXMLプロファイルの一部を手動で使用してクラスパスを指定することです.2つ目は工場beanのmapperLocationsプロパティを使用することです.
mapperLocationsプロパティは、リソースの場所のリストを使用します.このプロパティは、MyBatisのXMLマッパーファイルの場所を指定するために使用できます.この値には、Antスタイルを使用してディレクトリ内のすべてのファイルをロードするか、ベースパスの下からすべてのパスを再帰的に検索できます.例:
 id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   name="dataSource" ref="dataSource" />
   name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" />

これはクラスパスからsampleにロードされます.config.mappersパッケージとそのサブパッケージのすべてのMyBatisマッパーXMLファイル.
コンテナ環境管理トランザクションで必要なプロパティの1つは、transactionFactoryClassです.第4章(4.2節)を参照して、関連部分を参照してください.