SpringJDBCでDaoを作成したら、ビジネスロジックから呼び出したいです!
これをする方法を見てみます。
やることは単純で、Springの設定ファイルに設定するだけです。
【JavaのDaoクラス】
ここでは、MemberDaoImpl というクラスを作ったとします。
(・DBからデータを取得するには?(SimpleJdbcTemplate のサンプル) を参照)
【Javaのビジネスロジックのクラス】
ここでは、MemberServiceImplというクラスを作ったとします。
以下のsetterをクラス内に用意しておきます。
public class MemberServiceImpl implements MemberService{ private MemberDao memberDao;
public void setMemberDao(MemberDao memberDao) { this.memberDao = memberDao; }
public List<Member> findMember() { List<Member> memberList = this.memberDao.findMember(); return memberList; }
}
【Springの設定ファイル】
<bean id="memberService" class="business.service.MemberServiceImpl"> <property name="memberDao" ref="memberDao"/> </bean>
<bean id="memberDao" class="dao.MemberDaoImpl"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.postgresql.Driver"/> <property name="url"> <value>jdbc:postgresql://localhost/test?useUnicode=true&characterEncoding=utf-8</value> </property> <property name="username" value="user" /> <property name="password" value="pass" /> </bean>
【説明】
設定は上記のとおりです。
作成したMemberDaoImplをbeanに設定して、
それをさらにMemberServiceImplのmemberDaoプロパティに設定するだけです。
MemberServiceImplクラス内での実際のDao使い方は、見てのとおり!
インスタンスが設定されているものとして、普通に使うだけです。
List<Member> memberList = this.memberDao.findMember();
これだけです!
インスタンスの生成とMemberServiceImplクラスへの設定はSpringがやってくれます。