2
林學習彈簧(2和3)和i得到這個方法在ClientDao彈簧JDBC DAO
public Client getClient(int id) {
List<Client> clients= getSimpleJdbcTemplate().query(
CLIENT_GET,
new RowMapper<Client>() {
public Client mapRow(ResultSet rs, int rowNum) throws SQLException {
Client client = new ClientImpl(); // !! this (1)
client.setAccounts(new HashSet<Account>()); // !! this (2)
client.setId(rs.getInt(1));
client.setName(rs.getString(2));
return client;
}
},id
);
return clients.get(0);
}
和下面的彈簧佈線:
<bean id="account" class="client.AccountRON" scope="prototype">
<property name="currency" value = "RON" />
<property name="ammount" value="0" />
</bean>
<bean id="client" class="client.ClientImpl" scope="prototype">
<property name="name" value="--client--" />
<property name="accounts">
<set>
</set>
</property>
</bean>
的事情是,我不喜歡的java代碼(1)和(2)的註釋行。我會從(2)開始,我認爲這很簡單:有沒有一種方法可以在.xml文件中連接bean,告訴spring實例化ClientImpl中設置的「帳戶」的集合實現?所以我可以擺脫(2)
現在轉到(1):如果實施更改會發生什麼?我真的需要爲另一個實現編寫另一個DAO嗎?或者我必須構建一個BeanFactory?還是有另一個更美麗的解決方案?
謝謝!
謝謝。我不知道爲什麼我認爲在DAO中有一個工廠是不好的。現在看起來沒問題。我一定很累。 – Blitzkr1eg 2010-09-02 19:26:38