Spring Boot:异常:org.springframework.beans.factory.UnsatisfiedDependencyException

问题描述 投票:0回答:1

例外: org.springframework.beans.factory.UnsatisfiedDependencyException。 消息:创建带有名称的 bean 时出错 “customTokenAuthenticationFilter”:表达了不满足的依赖关系 通过字段“customAuthentication”;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名称为“customAuthentication”的 bean 时出错:不满意 通过字段“customUserDetailsService”表达的依赖关系;嵌套的 例外是 org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为“customUserDetailsServiceImpl”的 bean 时出错: 通过字段“baseJpaRepository”表达的依赖关系不满足; 嵌套异常是 org.springframework.beans.factory.NoUniqueBeanDefinitionException:否 合格的 bean 类型 'com.spring.boot.common.persistence.repository.base.BaseJpaRepository' 可用:预期有一个匹配的 bean,但发现了 60 个: LookupQueryRepository、historyRepository、ussdMenuRepository、ICapRepository、organizationRepository、menuRepository、persistentLoginRepository、roleRepository、ussdTransactionRepository、overDraftKYCRepository、useCaseRepository、userOrganizationRepository、asyncTransactionRepository、queryInfoRepository、ussdTransactionLogRepository、privilegeRepository、payBillC 2BRepository、userRoleRepository、userRepository、cronJobRepository、notifyCVMAPIRepository、buyAirtimeOtherRepository、openNetRepository、endpointConfigurationRepository、walletToBankTPGenericRepository、 queryOrganizationInfoRepository、currencyRepository、preferenceRepository、queryCustomerRepository、activityLoggingRepository、asyncParamValueRepository、notifyCvmRepository、queryCustomerBalanceRepository、purchaseAirtimeRepository、ussdMenuEndpointRepository、useCaseProcessRepository、paybillB2CRepository、transactionLogRepository、dealerDiscountRepository、buyBundleProductRepository ory,airTimeRequestRepository,queryOrganizationBalanceRepository,userPrivilegeRepository,walletToBankTPUBARepository,userCredentialRepository,queryBalanceRepository,rolePrivilegeRepository,constantsConfigurationRepository,queueLogRepository,ussdSessionRepository, auditLogRepository、walletToBankRepository、walletToBankTPFincaRepository、APIPaymentRequestRepository、dealerTypeRepository、exchangeRateRepository、walletToBankTPEcoBankRepository、queryChangeOptionalOfferRepository、airtimeTransferRepository、dealerRepository

基础存储库

@NoRepositoryBean
public interface BaseJpaRepository<E extends BaseEntity> extends JpaRepository<E, Long> {
}

实施存储库

@Repository
public interface ActivityLoggingRepository extends BaseJpaRepository<ActivityLog> {
}

基础服务

public abstract class BaseServiceImpl<E extends BaseEntity, ID extends Serializable> implements BaseService<E, ID> {
    @Autowired
    protected BaseJpaRepository<E> baseJpaRepository;
}

当我在

BaseJpaRepository<E> baseJpaRepository
中使用
BaseServiceImpl
时,出现错误。

java spring spring-boot jpa spring-data
1个回答
0
投票

Spring 在下面的消息中指定了问题

预期有一个匹配的 bean,但发现了 60 个

由于您有超过 1 个

BaseJpaRepository
的实现,Spring 本身无法知道应该注入哪个特定的 bean,因此它无法实例化您的服务实现。

如果您尝试为服务类创建一些通用方法,最好不要在父类中注入任何内容。请改用策略设计模式或模板设计模式。

https://refactoring.guru/design-patterns/template-method

https://refactoring.guru/design-patterns/strategy

© www.soinside.com 2019 - 2024. All rights reserved.