首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BeanFactory与ApplicationContext

BeanFactory与ApplicationContext
EN

Stack Overflow用户
提问于 2021-12-06 12:44:39
回答 1查看 50关注 0票数 0

我有一节课:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
   <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

EN

回答 1

Stack Overflow用户

发布于 2021-12-06 13:17:56

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

@Service公共类SecurityManagerService实现ISecurityManagerService {

代码语言:javascript
复制
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或纯粹不使用构造函数使用@@Autowired。希望这能给你一些线索。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70245713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档