构造函数注入代码示例

在service注解下的构造函数入参会爆红,通常是因为Spring框架无法自动注入这些参数。解决这个问题的方法是使用@Autowired或@Resource注解来手动注入这些参数。这些注解可以将其他类中的对象注入到当前类中的构造方法中,从而解决构造函数入参的问题。
下面是一个示例:

@Service
public class UserServiceImpl implements UserService {
    private final UserRepository userRepository;
    private final RoleRepository roleRepository;
    @Autowired
    public UserServiceImpl(UserRepository userRepository, RoleRepository roleRepository) {
        this.userRepository = userRepository;
        this.roleRepository = roleRepository;
    }
    // UserServiceImpl的其他方法
}

在这个示例中,UserServiceImpl类有一个构造方法,它有两个参数:userRepository和roleRepository。使用@Autowired注解,Spring框架可以自动将这些参数注入到构造方法中,从而解决了构造函数入参的问题。
如果你使用的是@Resource注解,那么代码会略有不同。下面是一个使用@Resource注解的示例:

@Service
public class UserServiceImpl implements UserService {
    private final UserRepository userRepository;
    private final RoleRepository roleRepository;
    @Resource
    public UserServiceImpl(UserRepository userRepository, RoleRepository roleRepository) {
        this.userRepository = userRepository;
        this.roleRepository = roleRepository;
    }
    // UserServiceImpl的其他方法
}

在这个示例中,使用@Resource注解来注入userRepository和roleRepository对象。这两个对象必须在Spring容器中注册过,否则会抛出异常。
无论你使用哪种注解,都需要确保注入的对象已经在Spring容器中注册过。否则,会抛出异常或运行时错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值