下面是Spring-JDBC上Spring引用留档的代码片段
https://docs.spring.io/spring-framework/docs/3.0.x/spring-framework-reference/html/jdbc.html
public class JdbcDao {
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
System.out.println("inside the setDatasource");
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
XML配置文件条目::
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="jdbcDao" class="learning.spring.dao.JdbcDao">
<property name="**dataSource**" ref="dataSource"/>
</bean>
我的问题是如何在这里进行Setter注入,即使Jdbc道类没有任何名为dataSource的属性。那么,如果bean中没有属性,那么为什么要调用setter呢?
这是因为注入是通过setter方法完成的,而不是通过字段名,并且属性名称假定的setter方法名称与Jdbc道
类中的实际setter方法名称相匹配。
试着阅读这些文章。
https://www.baeldung.com/spring-xml-injection
https://www.baeldung.com/inversion-control-and-dependency-injection-in-spring