在Spring Boot的构造函数中是否强制使用@Autowired批注 [英] Is @Autowired annotation mandatory on constructor in Spring boot
本文介绍了在Spring Boot的构造函数中是否强制使用@Autowired批注的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我使用构造函数DI,是否必须放置@Autowired
?
Is it mandatory to put @Autowired
if I am using constructor DI?
推荐答案
@Autowired注释对构造函数是强制性的吗?
Is @Autowired annotation mandatory for a constructor?
否
在 Spring 4.3 如果您的类只有单个构造函数,则无需放置@Autowired
.
After Spring 4.3 If your class has only single constructor then there is no need to put @Autowired
.
在Spring 4.3之前:
package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
@Autowired
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
// ...
}
之后:
@Service
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
// ...
}
这篇关于在Spring Boot的构造函数中是否强制使用@Autowired批注的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文