@autowired MessageSource 在自定义异常中始终为 null

@autowired MessageSource always null in custom exception

我在 spring boot 2 项目上工作并定义了以下代码,但 messageSource 始终为 null。我在@service class 中自动装配了 MessageSource,它可以工作。谁能告诉我为什么?

public class ApplicationException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    @Autowired
    private MessageSource messageSource;

}

自动装配仅在托管 class 中工作(例如,注释为 @Component、@Service 或在应用程序上下文 xml 中定义)。 ApplicationException 不受 Spring 容器管理,因此它甚至不会尝试注入 属性。尝试在服务 class 中自动装配您的 MessageSource,您在其中使用此异常并将其传递给构造函数。

@Service
public class SomeService {
    private MessageSource messageSource;
    @Autowired
    public SomeService(@NonNull MessageSource messageSource) {
        this.messageSource = messageSource;
    }
    public void someMethod() {
        throw new ApplicationException(messageSource, "Some message");
    }
}