@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");
}
}
我在 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");
}
}