【发布时间】:2019-12-19 12:46:32
【问题描述】:
我有一个名为 UserRepository 的通用存储库接口。 然后我有一个从名为 MyUserRepository 的接口扩展而来的接口。 它处理一个扩展 User 的 MyUser 类。
我还有一个名为 UserService 的服务接口和一个名为 MyUserServiceImpl 的类。
该服务需要一个 UserRepository 的实例,我虽然可以使用某种注释,例如 @Qualifier,但它不起作用。
@NoRepositoryBean
public interface UserRepository <T extends User> extends JpaRepository<T, Long>{
<S extends T> S findByLoginName(String loginName);
<S extends T> S saveAndFlush(User user);
}
@Repository
@Qualifier("myUserRepository")
public interface MyUserRepository extends UserRepository<MyUser> {
}
public interface UserService {
public List<User> getUsers();
}
@Service
public class MyUserServiceImpl implements UserService {
@Autowired
@Qualifier("myUserRepository")
private UserRepository<User> userRepository;
@Override
public List<User> getUsers() {
....
}
}
应用程序启动失败
说明:
com....services.MyUserServiceImpl 中构造函数的参数0 需要一个 'com....repositories.UserRepository' 类型的 bean 找不到。
注入点有以下注解: - @org.springframework.beans.factory.annotation.Autowired(required=true)
行动:
考虑定义一个 'com....repositories.UserRepository' 类型的 bean 在您的配置中。
【问题讨论】:
标签: java spring-boot