我有以下代码 -
道.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>
应用程序上下文.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 来完成。我想知道仅使用注释可以做到的最好的事情。