Theo mùa xuân documentation, các bước để sử dụng Spring JdbcTemplate là như sau:sử dụng Spring JdbcTemplate - tiêm nguồn dữ liệu vs JdbcTemplate
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- Scans within the base package of the application for @Components to configure as beans -->
<context:component-scan base-package="org.springframework.docs.test" />
<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>
<context:property-placeholder location="jdbc.properties"/>
</beans>
Và sau đó,
@Repository
public class JdbcCorporateEventDao implements CorporateEventDao {
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
// JDBC-backed implementations of the methods on the CorporateEventDao follow...
}
Về cơ bản, JdbcTemplate được tạo ra bên trong lớp Component bằng cách sử dụng setter cho nguồn dữ liệu.
Có điều gì sai trái khi thực hiện theo cách này thay vì vậy có chính xác MỘT ví dụ về jdbcTemplate trong ứng dụng không?
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"
p:dataSource-ref="dataSource"
/>
Và sau đó tiêm JdbcTemplate bản thân trực tiếp vào phần
@Repository
public class JdbcCorporateEventDao implements CorporateEventDao {
@Resource("jdbcTemplate")
private JdbcTemplate jdbcTemplate;
// JDBC-backed implementations of the methods on the CorporateEventDao follow...
}
Có một lý do tại sao các JdbcTemplate bản thân không được tiêm vào lớp thành phần trực tiếp?
SGB
Có thể là một bản sao của http: // stackoverflo w.com/q/9460507/309399. Nhưng câu hỏi không được trả lời. – SGB