【发布时间】:2012-08-03 01:44:35
【问题描述】:
我尝试在 Spring 中使用 JDBC 编写事务管理器。
我的 app-servlet.xml
<!-- JDBC Config -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" />
<!-- dataSource TransactionManager -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="UserDAOImpl" class="com.project.dao.impl.UserDAOImpl">
<property name="transactionManager" ref="transactionManager"/>
</bean>
我的 UserDAOImpl.java
public class UserDAOImpl implements UserDAO {
//transaction manager
private DataSourceTransactionManager transactionManager;
private JdbcTemplate jdbcTemplate;
public UserDAOImpl() {
super();
DataSource dataSource = transactionManager.getDataSource();
jdbcTemplate = new JdbcTemplate(dataSource);
}
public void setTransactionManager(DataSourceTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
....
}
即使我的 app-servlet 中有 transactionManager Bean,UserDAOImpl 也不会被实例化,因为 transactionManager 是 null。可能我错过了一些点,但无法找出问题所在。
【问题讨论】:
-
@Kowser 原因:org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [com.project.dao.impl.UserDAOImpl]:构造函数抛出异常;嵌套异常是 java.lang.NullPointerException ...... 引起:com.project.dao.impl.UserDAOImpl.
(UserDAOImpl.java:29) 处的 java.lang.NullPointerException
标签: java web-services spring jdbc transactionmanager