我大多在我的项目中使用@Autowired
和@Component
注释。但是,我将使用DataSource
类来执行数据库操作。Spring声明xml组件
于是,我用这是我调度-servlet.xml中:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/market"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
在我的DAO类,我对dataSource
二传手是:
@Autowired
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplateObject = new JdbcTemplate(dataSource);
}
然而,这并不是诀窍。我的jdbcTemplateObject
是null
。
如果我不使用“上下文:组件扫描...”并使用古典弹簧豆代替而不使用@Autowired
注释,则所有工作都很好。
我可以使用我的数据库。但是,我不想在我的xml文件中逐一声明所有的bean。随着项目的发展,这不太现实。我怎么解决这个问题 ?是否可以在我的dispatcher-servlet.xml
中声明dataSource
作为组件,因此@Autowired
适用于dataSource?
当您使用'@ Autowired'上的字段Spring就会查找依赖关系并注入他们的权利有没有,如果这里setter方法是没有意义的。 – 2014-11-03 10:10:42
春将尽,你并不需要一个二传手。你可以在xml中使用jdbctemplate并自动装载它。 – 2014-11-03 10:12:53
非常感谢。我不知道我不需要二传手。如何在没有二传手的情况下设置它? – 2014-11-03 10:17:38