abstract 类,里面引用@Autowired ,使用注入类的方法,报空指针异常

java
public abstract class BaseAutoDiscoverHandler<T extends BaseAutoDiscoverMapper> {
@Autowired
private MessageSource messageSource;
protected final String CARD_NOT_EXISTS = messageSource.getMessage("parent.board.not.exist ", null,getLocale());
}
原因:
1.@Autowired 注入依赖
在 abstract 类中直接使用 @Autowired 注入依赖(如 MessageSource messageSource)会导致以下问题:
Spring 无法实例化抽象类 :Spring 容器无法直接实例化 abstract 类,因此依赖注入无法生效。
循环依赖风险:如果 MessageSource 类依赖于当前 abstract 类的子类,会导致循环依赖问题。
2.protected final 字段初始化
代码 protected final String TEMPLET_NULL = messageSource.getMessage("template.is.empty", null, getLocale()); 存在以下问题:
messageSource 未注入:messageSource 未通过 @Autowired 注入,直接调用会报空指针异常。