为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的employeeRepository没法成功注入啊?

package com.oracle.repository;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.oracle.domain.Employee;

public class TestRepository {
	private ApplicationContext ac = null;
	private EmployeeRepository employeeRepository=null;
	@Before
	public void setup(){
		ac = new ClassPathXmlApplicationContext("beans.xml");
		employeeRepository = (EmployeeRepository) ac.getBean("employeeRepository");
		System.out.println("setup");
	}
	@After
	public void teardown(){
		ac = null;
		System.out.println("teardown");
	}
	@Test
	public void testFindByName(){
		Employee emp = employeeRepository.findByName("cyf2");
		System.out.println(emp);
	}

}

<?xml version="1.0" encoding="UTF-8"?>


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

     http://www.springframework.org/schema/context 

     http://www.springframework.org/schema/context/spring-context.xsd"> 

<!-- 1 配置数据源 -->

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" value="com.mysql.jdbc.Driver"/>

<property name="username" value="root"/>

<property name="password" value="root"/>

<property name="url" value="jdbc:mysql://localhost:3306/scott"/>

</bean>

<!-- <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource" ref="dataSource" />

</bean> -->

<!--配置EntityManagerFactory  -->

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

<property name="dataSource" ref="dataSource" />

<property name="jpaVendorAdapter">

<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>

</property>

<property name="packagesToScan" value="com.oracle" />

<property name="jpaProperties">

<props>

<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>

<prop key="hibernate.show_sql">true</prop>

<prop key="hibernate.format_sql">true</prop>

<prop key="hibernate.hbm2ddl.auto">update</prop>

</props>

</property>

</bean>

</beans>

package com.oracle.repository;


import org.springframework.data.repository.Repository;

import org.springframework.stereotype.Component;

import org.springframework.stereotype.Service;


import com.oracle.domain.Employee;

 

public interface EmployeeRepository extends Repository<Employee, Integer>{

public Employee findByName(String name);

}


正在回答

5 回答

ac = new ClassPathXmlApplicationContext("beans.xml");

这一行代码中,你需要改成

ac = new ClassPathXmlApplicationContext("beans-new.xml");

后面换了配置文件的

0 回复 有任何疑惑可以回复我~

请试着从下面几方面解决问题:

1、是否将其EmployeeRepository配置到bean配置文件中

2、测试类中是否加载正确的bean配置文件

3、获取的bean的时候,是否为正确的bean名称

0 回复 有任何疑惑可以回复我~

擦,是不是找到了你加载的beans.xml文件名称错了

0 回复 有任何疑惑可以回复我~

这个也不行,有没有谁知道其他方法吗?谢谢

0 回复 有任何疑惑可以回复我~

试试  ac.getBean(EmployeeRepository.class)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我的employeeRepository没法成功注入啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信