Spring基础存储库的实现不会影响继承的接口

时间:2019-05-22 07:27:46

标签: spring spring-boot

我想创建一个基本的通用存储库接口,然后通过一个类实现此接口,我希望其他实现了基本接口的接口与实现的类一起工作

这是基本界面:

@NoRepositoryBean
public interface Base<T>{
T getFoo();
}

这是该类实现的基础存储库:

public class BaseImple<T> implements Base<T>{
public T getFoo(){
//do some stuff
return t;
}
}

这是第一个存储库:

@Repository
public interface A extends Base<FOO>{
}

这是第二个存储库:

@Repository
public interface B extends Base<BAR>{
}

但是当我自动连接B接口时,会出现错误:

no qualifying bean of type B

2 个答案:

答案 0 :(得分:0)

public interface Base<T>{
T getFoo();
}
@Repository
public class BaseImple<T> implements Base<T>{
public T getFoo(){
//do some stuff
return t;
   }
}

public interface A extends Base<FOO>{
}
public interface B extends Base<BAR>{
}

答案 1 :(得分:0)

基本上,您只创建无法实例化的接口。 Spring在该存储库中找不到任何对象/ Bean,因此请尝试使用一个实现类来扩展您的存储库(如@hmaz所示)或在Spring接口中扩展CrudRepositoryJpaRepository以便提供实施。