セットアップ - DI環境の調整

アプリケーションで利用しているDIコンテナの環境にDBFluteのクラスを認識させて下さい。

DIコンテナとの連携

DBFluteは、DIコンテナと連携して利用されることを前提 としています。アプリでDIコンテナを利用しない場合でも、DBFlute内部での管理用としてDIコンテナが必要となります。

Spring Framework

JavaConfig (1.1.xからデフォルト)

Genreateタスクで自動生成されるDI設定クラス DBFluteBeansJavaConfig を、アプリケーションでコンポーネントを初期化するときに、一緒にこのクラスを組み込みます。

Spring Framework - DI設定クラス

データソース (javax.sql.DataSource) のコンポーネントが dataSource という名前で別途登録されていることが前提です。 クラス名やコンポーネント名などは dependencyInjectionMap.dfprop にて微調整できます。

XmlConfig (1.0.xのデフォルト)

Genreateタスクで自動生成されるDI設定ファイル dbfluteBeans.xml を、アプリケーションのDI設定ファイル(Beans定義)から参照するようにして下さい。

e.g. beanRefContext.xml にて dbfluteBeans.dicon を参照 @app.dicon
<beans>
    <bean id="context" class="...context.support.ClassPathXmlApplicationContext">
        <constructor-arg>
            <list>
                <value>dbfluteBeans.xml</value>
                <value>jdbcBeans.xml</value>
            </list>
        </constructor-arg>
    </bean>
</beans>

データソース (javax.sql.DataSource) のコンポーネントが dataSource という名前で別途登録されていることが前提です。 クラス名やコンポーネント名などは dependencyInjectionMap.dfprop にて微調整できます。

Google Guice

Genreateタスクで自動生成されるDI設定クラス DBFluteModule を、アプリケーションでコンポーネントを初期化するときに、一緒にこのクラスを組み込みます。

コンストラクタでデータソース (javax.sql.DataSource) の指定します。

e.g. DBFluteモジュールの初期化 @Java
List<Module> moduleList = ...
DataSource dataSource = ...
moduleList.add(new DBFluteModule(dataSource));
Injector injector = Guice.createInjector(moduleList.toArray(new Module[]{}));

Seasar(S2Container)

Genreateタスクで自動生成されるDI設定ファイル dbflute.dicon を、アプリケーションのDI設定ファイル(app.diconなど)でインクルードするようにして下さい。

e.g. app.dicon にて dbfluteBeans.xml をインクルード @app.dicon
<components>
    <include path="convention.dicon"/>
    <include path="aop.dicon"/>
    <include path="dbflute.dicon"/>
    ...
</components>

データソース (javax.sql.DataSource) のコンポーネントが dataSource という名前で別途登録されていることが前提です。 クラス名やコンポーネント名などは dependencyInjectionMap.dfprop にて微調整できます。

CDI

Genreateタスクで自動生成されるDI設定クラス DBFluteModule を、アプリケーションでコンポーネントを初期化するときに、一緒にこのクラスを組み込みます。

Lasta Di

Lasta Diの場合は、LastaFluteのExampleからプロジェクトのセットアップすることがほとんどで、Exampleにこういった設定が組み込まれているので明示的な設定は不要です。

(app.xml にて、dbflute.xml を include します)