読者です 読者をやめる 読者になる 読者になる

LucyとDBFluteの連携(その3、設定がだいぶ減りました)

DBFlute-0.9.0を使っている現在のdbflute-spring-exampleを使ったところ、
設定ファイルがだいぶ減りました。(でもまだ完全じゃないから増えるかも…)

あとはトランザクション周りをSpring使わないようにするのと、allcommonのImplementedBehaviorSelectorで
SpringのApplicationContextをimportしているところをどうするかだなぁ。
(今のままだとspring.jarが必要になる)


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE lucy-config PUBLIC "-//LUCY//DTD LUCY//EN" "http://www.lucy.org/dtd/lucy-config.dtd">
<lucy-config>

    <component name="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <inject method="setDriverClassName">"org.h2.Driver"</inject>
        <inject method="setUrl">t2DbUrl.object</inject>
        <inject method="setUsername">"sa"</inject>
        <!-- <inject method="setPassword"></inject> -->
        <inject method="setMaxActive">20</inject>
    </component>
    <!-- 
    <component name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <inject method="setDataSource">dataSource</inject>
    </component>
      -->
    <!-- The example original component for building connection string of H2. -->
    <component name="t2DbUrl" class="org.t2framework.samples.todo.EmbeddedH2UrlFactoryBean">
        <inject method="setUrlSuffix">"/data/t2db"</inject>
        <inject method="setReferenceClassName">"org.t2framework.samples.todo.dbflute.allcommon.DBCurrent"</inject>
    </component>
    
    <!-- The components of DBFlute Runtime. -->
    <component name="dbfluteInitializer" class="org.t2framework.samples.todo.dbflute.allcommon.DBFluteInitializer"/>
    <component name="invokerAssistant" class="org.t2framework.samples.todo.dbflute.allcommon.ImplementedInvokerAssistant">
        <inject method="setDataSource">dataSource</inject>
    </component>
    <component name="commonColumnAutoSetupper" class="org.t2framework.samples.todo.dbflute.allcommon.ImplementedCommonColumnAutoSetupper"/>
    <component name="behaviorSelector" class="org.t2framework.samples.todo.dbflute.allcommon.ImplementedBehaviorSelector"/>
    <component name="behaviorCommandInvoker" class="org.seasar.dbflute.bhv.core.BehaviorCommandInvoker">
        <inject method="setInvokerAssistant">invokerAssistant</inject>
    </component>
    <!-- The components of Behavior. -->
    <component name="memberBhv" class="org.t2framework.samples.todo.dbflute.exbhv.MemberBhv">
        <inject method="setCommonColumnAutoSetupper">commonColumnAutoSetupper</inject>
        <inject method="setBehaviorCommandInvoker">behaviorCommandInvoker</inject>
        <inject method="setBehaviorSelector">behaviorSelector</inject>
    </component>

</lucy-config>


テストコード

@SingletonScope
public class BehaviorTest extends LucyTestCase {

	private Lucy lucy;
	
	public void setUp() throws Exception {
		lucy = getLucy();
		lucy.load("org/t2framework/samples/lucy/dbflute/config.xml");
	}
	
	public void testBehavior() throws Exception {
		final MemberCB cb = new MemberCB();
		MemberBhv memberBhv = lucy.get("memberBhv");
		List<Member> list = memberBhv.selectList(cb);
		
		assertNotNull(list);
		for(Member member : list){
			assertNotNull(member.getMemberName());
		}
	}
}