- 构造函数注入:构造函数注入是最常见的一种依赖注入方式。通过在组件的构造函数中接受依赖参数,并将其保存在私有字段中,可以实现依赖注入。这种方式简单直接,适用于必须的依赖和不变的依赖场景。
public class UserserviceImpl implements Userservice{private final UserRepository userRepository;public UserserviceImpl(UserRepository userRepository) {this.userRepository = userRepository;}}
- Setter方法注入:Setter方法注入是通过Setter方法来设置组件的依赖,通过提供Setter方法,可以灵活地注入和替换依赖,适用于可选的依赖和可变的依赖场景。
public class UserServiceImpl implements UserService {private UserRepository userRepository;public void setUserRepository(UserRepository userRepository) {this.userRepository = userRepository;}}
- 字段注入:字段注入是通过直接在字段上标记@Autowired或@Resource注解来实现的。这种方式简洁方便,但不推荐在大型项目中使用,因为它会增加组件与IoC容器之间的耦合度。
public class UserServiceImpl implements UserService {@Autowiredprivate UserRepository userRepository;}