Bean定义是独立Java应用程序上的抽象错误

时间:2013-05-09 13:11:43

标签: java spring java-ee jdbc

我正在尝试创建一个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();
    }
}

1 个答案:

答案 0 :(得分:2)

那么,父DAO 抽象。你为什么要试着把豆子拉出来?你想得到childDao bean。