SpringJDBC ClassPathXmlApplicationContext 无法从资源中的 xml 加载 getbean

SpringJDBC ClassPathXmlApplicationContext unable to load getbean from xml in resources

我是 java 的菜鸟。我想将数据插入 employee table.

Err: No bean named 'employeeDAO.class' is defined.

my code structure:

这是我的代码。

file: com.vm.springjdbc.app.App.java

public class App {
    private ApplicationContext context;
    private EmployeeDAO employeeDAO;

    public static void main(String[] args) {
        context = new ClassPathXmlApplicationContext("Spring-Datasource.xml");
        employeeDAO = (EmployeeDAO) context.getBean("employeeDAO.class");
    }
}

file: com.vm.springjdbc.model.Employee.java

public class Employee { 
    private int id;
    private String name;
    private String mobile;
    setter & getter
}

file: com.vm.springjdbc.DAO.EmployeDAO.java

public class EmployeeDAO extends JdbcDaoSupport {   
    public void insert(Employee emp){       
    }
}

Xml file in resources:src/resources/Spring-Datasource.xml

<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-2.5.xsd">

<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/synapse4" />
        <property name="username" value="root" />
        <property name="password" value="admin" />
    </bean>

    <bean id="employeeDAO" class="com.vm.springjdbc.DAO.EmployeeDAO">
        <property name="dataSource" ref="dataSource" />
    </bean>
</beans>

Please help me to sort it out

您应该将 EmployeeDAO 作为接口并为此 EmployeeDAOImpl 实现一个实现 class,如下所示:

EmployeeDAO.java

public interface EmployeeDAO 
{
    public void insert(Employee employee);
}

EmployeeDAOImpl.java

public class EmployeeDAOImpl extends JdbcDaoSupport implements EmployeeDAO
{
    public void insert(Employee employee){
        //insertion implementation
    }

}

并在 Spring-Datasource.xml

中进行以下更改
<bean id="employeeDAO" class="com.vm.springjdbc.DAO.EmployeeDAOImpl">
   <property name="dataSource" ref="dataSource" />
</bean>

此外,请不要在

中使用 .class
employeeDAO = (EmployeeDAO) context.getBean("employeeDAO.class");

改为

employeeDAO = (EmployeeDAO) context.getBean("employeeDAO");