小编典典

在Spring Boot的构造函数中是否强制使用@Autowired批注

spring-boot

@Autowired如果我使用构造函数DI,是否必须填写?


阅读 447

收藏
2020-05-30

共1个答案

小编典典

@Autowired注释对于构造函数是必需的吗?

没有。

Spring 4.3之后,如果您的类只有单个构造函数,则无需放置@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;
    }

    // ...

}
2020-05-30