Spring JPA无法在单元测试之外自动装配/注入bean,我做错了什么?

时间:2015-02-24 16:01:01

标签: spring jpa

我保证我花了很多时间阅读spring.io上的文档,尝试快速入门教程等,但我无法弄清楚我做错了什么。我也在这里查看了类似的问题,并尝试了提出的解决方案(如果相关)。我确定它有点荒谬可笑,所以我很抱歉不得不问。

我的存储库:

@Repository
public interface SomethingRepository extends CrudRepository<Something, Integer> {

}

配置:

@Configuration
@EnableAutoConfiguration
@EntityScan("com.where.they.are") //changed for anonymity - assume correct
@EnableJpaRepositories("com.where.they.are") //changed for anonymity - assume correct
public class DatabaseConfigurationInTest {

}

这是我试图注入我的存储库的一些类(它失败了),它始终为null:

public class SomethingDAO{
@Inject
private SomethingRepository somethingRepository;
}

但是在这个单元测试中,它可以正常工作,注射和一切。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = DatabaseConfigurationInTest.class)
@ActiveProfiles("local")
public class SomethingRepoTest{
    @Inject
    private SomethingRepository somethingRepository;

1 个答案:

答案 0 :(得分:1)

要@Predrag Maric点,您的班级SomethingDAO可以使用@Service进行注释,并确保它的包可以通过componentScan访问

@Service
public class SomethingDAO{
@Inject
private SomethingRepository somethingRepository;
}