私は次のコードを持っています -
Dao.java
@Component
public class Dao extends NamedParameterJdbcDaoSupport {
}
dbContext.xml
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${db.driver}" />
<property name="url" value="${db.jdbc.url}" />
<property name="username" value="${db.user}" />
<property name="password" value="${db.password}" />
</bean>
applicationContext.xml
<context:component-scan base-package="com.kshitiz" />
問題は、NamedParameterJdbcDaoSupport
機能するためにデータソースが必要なことです。これはスーパークラスのプロパティであり、自分のクラスではないため、機能させるために私が考えることができる唯一の方法は-
@Component
public class Dao extends NamedParameterJdbcDaoSupport {
@Autowired
public void setDataSource(DataSource dataSource) {
super.setDataSource(dataSource);
}
}
これはかなり醜いです。Bean のすべてのプロパティを自動配線するように指定できますか? 何かのようなもの -
@Component(default-autowire="byType")
public class Dao extends NamedParameterJdbcDaoSupport {
}
これは春に可能ですか?または、スーパークラスの依存関係を注入する最もエレガントな方法は何ですか?
編集: 現在使用しているXMLを使用してこれを実行できることはすでに知っています。注釈のみを使用して実行できる最善の方法を知りたいです。