Java @弹簧中的自动接线未按预期工作。数据源为空
我是春天的新手。我正试图使用@Autowired注释将一个数据源实例注入到我的DAOImpl类中。但是数据源总是空的 我的主要班级:Java @弹簧中的自动接线未按预期工作。数据源为空,java,spring,datasource,spring-jdbc,Java,Spring,Datasource,Spring Jdbc,我是春天的新手。我正试图使用@Autowired注释将一个数据源实例注入到我的DAOImpl类中。但是数据源总是空的 我的主要班级: package com.cts.main; import org.springframework.beans.factory.xml.XmlBeanFactory; import com.cts.status.bizImpl.AddTableDetailsBizImpl; import com.cts.status.dao.JDBCEmployeeDetails
package com.cts.main;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import com.cts.status.bizImpl.AddTableDetailsBizImpl;
import com.cts.status.dao.JDBCEmployeeDetailsDAO;
public class Main {
public static void main(String[] args) {
XmlBeanFactory factory = AddTableDetailsBizImpl.getApplicationContext();
JDBCEmployeeDetailsDAO dao = (JDBCEmployeeDetailsDAO) factory.getBean("JDBCEmployeeDetailsDAO");
dao.insertEmployeeDetails(null);
}
}
实现接口的DAOImpl类如下所示:
package com.cts.status.dao;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import com.cts.status.bean.EmployeeDetails;
public class JDBCEmployeeDetailsDAOImpl implements JDBCEmployeeDetailsDAO{
private DataSource dataSource;
private JdbcTemplate jdbctemplate;
public DataSource getDataSource() {
return dataSource;
}
@Autowired
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbctemplate = new JdbcTemplate(dataSource);
}
@Override
public void insertEmployeeDetails(EmployeeDetails employeeDetails) {
System.out.println("HIIIIII");
}
@Override
public EmployeeDetails retrieveEmployeeDetails(int employeeId) {
System.out.println("HIIIIII");
return null;
}
我的Spring配置XML文件如下所示:
<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-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="com.cts.status.dao"/>
<bean id="JDBCEmployeeDetailsDAO" class="com.cts.status.dao.JDBCEmployeeDetailsDAOImpl">
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver" />
<property name="url" value="jdbc:derby://localhost:1527/StatusGen" />
<property name="username" value="app" />
<property name="password" value="app" />
</bean>
</beans>
当我运行我的主类时,我能够创建一个JDBCEmployeeDetailsDAO类型的实例,但是数据源值为null
我不确定我错过了什么。请帮忙
谢谢
Vijay用@Service注释您的类JDBCEmployeeDetailsDAOImpl。添加一些StatTrace会很有帮助,从您的代码判断,您使用的是BeanFactory而不是ApplicationContext来加载bean。添加AddTableDetailsBizImpl的源代码。