Meh*_*lik 9

@Autowired 注释对构造函数是强制性的吗?

不。

春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;
    }

    // ...

}
Run Code Online (Sandbox Code Playgroud)

后:

@Service
public class DatabaseAccountService implements AccountService {

    private final RiskAssessor riskAssessor;

    public DatabaseAccountService(RiskAssessor riskAssessor) {
        this.riskAssessor = riskAssessor;
    }

    // ...

}
Run Code Online (Sandbox Code Playgroud)