我正在尝试创建一个ParentDao,它将处理我的独立Java应用程序的所有连接细节 当我运行我的程序时,我得到下面的错误
线程“main”中的异常 org.springframework.beans.factory.BeanIsAbstractException:错误 创建名为'parentDao'的bean:Bean定义是抽象的
我做错了什么? 我知道它是一个抽象类我只是遵循这个也使用抽象类的例子。 abstract ParentDao Class而这一个DRY your Spring Bean我完全失去了如何在独立应用程序上执行此操作。我在哪里初始化ApplicationContext以及如何。
下面是我的连接属性(bean.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@ipaddress:1521:habagat" />
<property name="username" value="username" />
<property name="password" value="password" />
</bean>
<bean id="parentDao" class="com.mercury.dao.ParentDAO" abstract="true">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="childDao" class="com.mercury.dao.ChildDAOImpl" parent="parentDao"/>
</beans>
以下是我的主要方法
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"beans.xml");
ParentDAO parentDao = (ParentDAO) context.getBean("parentDao");
}
和我的父母DAO CLASS
public abstract class ParentDAO<T> extends JdbcDaoSupport {
public abstract void insert(T object) throws Exception;
public abstract void delete(int id) throws Exception;
public abstract void update(T object) throws Exception;
public abstract T select(int id) throws Exception;
}
我的服务
public class myService {
ChildDAO childDao;
public String getChildrenCount() {
return int totalCount = childDao.getRecordCount();
}
}
答案 0 :(得分:2)
那么,父DAO 是抽象。你为什么要试着把豆子拉出来?你想得到childDao bean。