0

我有这堂课:

@Service
public class SecurityManagerService implements ISecurityManagerService {


    private final UserRepository userRepository;
    private final RoleRepository roleRepository;
    private final RightRepository rightRepository;

    public SecurityManagerService(UserRepository userRepository,
                                  RoleRepository roleRepository,
                                  RightRepository rightRepository) {

        this.userRepository = userRepository;
        this.roleRepository = roleRepository;
        this.rightRepository = rightRepository;
    }

..
}

我想为测试类创建 bean:

   <bean id="userRepository" class="eu.lopo.repositories.security.UserRepository" abstract="true"/>
    
    <bean id="securityManagerService" class="eu.lopo.services.security.SecurityManagerService"  >
        <constructor-arg><ref bean="userRepository"/></constructor-arg>
       
    </bean>

但我有错误:Abstract bean cannot be used here

4

1 回答 1

0

我认为您最好使用 Annotation 来注入您的依赖项。Springboot 现在提供了一种非常优雅和简单的方式来注入依赖服务。

@Service 公共类 SecurityManagerService 实现 ISecurityManagerService {

private final UserRepository userRepository;
private final RoleRepository roleRepository;
private final RightRepository rightRepository;

public SecurityManagerService(@Autowired UserRepository userRepository,
                              @Autowired RoleRepository roleRepository,
                              @Autowired RightRepository rightRepository) {

    this.userRepository = userRepository;
    this.roleRepository = roleRepository;
    this.rightRepository = rightRepository;
}

.. }

或者,您可以通过 setter 或纯粹不使用 constructor 来使用 @@Autowired 。希望这能给你一些线索。

于 2021-12-06T13:17:56.847 回答