spring Boot @Autowired注入

Bspring boot @Autowired使用方式:

1.通过构造器注入
单个

public class TestController (){
private final TestMapper testMapper;
@Autowired
public TestController (TestMapper testMapper) {
this.testMapper= testMapper;
}
}
多个

public class TestController (){
private final TestaMapper testaMapper;
private final TestbMapper testbMapper;
@Autowired
public TestController (TestaMapper testaMapper, TestbMapper testbMapper) {
this.testaMapper= testaMapper;
this.testbMapper= testbMapper;
}
}

弊端:可以看出当需要注入更多的对象时,构造函数的参数值会变得很长。

2.通过setter方法注入

public class TestController (){
private final TestMapper testMapper;
@Autowired
public void setTestMapper(TestMapper testMapper) {
this.testMapper= testMapper;
}
}

弊端:不能将属性设置为final,每个对象的注入都要写对应的setter方法。

3.通过field反射注入

public class TestController (){
@Autowired
private TestMapper testMapper;

弊端:方法最简单。不符合JavaBean规范;不能将属性设置为final;创建的对象时,还可能引起NullPointerException。

使用idea时会提示Field injection is not recommended

作者:十月是妳的谎言
来源:CSDN
原文:https://blog.csdn.net/qq_38904700/article/details/79515049
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值