我大多在我的項目中使用@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