当前位置:   article > 正文

Springboot:介绍IOC几种常见依赖注入方式及其对比_spring boot三种注入方式的区别

spring boot三种注入方式的区别

Spring中的三种依赖注入方式

1.属性注入

@Autowired注解的一大使用场景就是Field Injection。

@Controller
public class UserController {

    @Autowired
    private UserService userService;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

通过Java的反射机制实现,所以private的成员也可以被注入具体的对象

2.构造器注入

Constructor Injection是构造器注入,是我们日常最为推荐的一种使用方式。

@Controller
public class UserController {

    private final UserService userService;

    public UserController(UserService userService){
        this.userService = userService;
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

通过对象构建的时候建立关系,这种方式对对象创建的顺序会有要求,当然Spring会为你搞定这样的先后顺序,除非你出现循环依赖,然后就会抛出异常。

3.set注入

Setter Injection需要依赖@Autowired注解,使用方式与Field Injection有所不同,Field Injection时@Autowired是用在成员变量上,而Setter Injection的时候,@Autowired是用在成员变量的Setter函数上。

@Controller
public class UserController {

    private UserService userService;

    @Autowired
    public void setUserService(UserService userService){
        this.userService = userService;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

通过调用成员变量的set方法来注入想要使用的依赖对象。

4.三种依赖注入的对比

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/201140
推荐阅读
相关标签
  

闽ICP备14008679号