本人的继承类引用了 service 层的方法,用的注解方式是@Autowired
该注解如果在容器 tomcat 启动后引用后不会报错,不会报 java.lang.NullPointerException 错误。
初始化时如果想调用数据库的数据,而此时 service 层的类没有实例化,导致 tomcat 启动时报空指针错误。
解决办法:
@Componentpublic class MessageResource extends AbstractMessageSource implements ResourceLoaderAware{ @Autowired private TsLanguageTestService tsLanguageTestService; private static MessageResource util; /** * Map切分字符 */ protected final String MAP_SPLIT_CODE = "|"; private final Map<String, String> properties = new HashMap<String, String>(); /** * 初始化数据,把数据库里的国际化都读入缓存的Map里 */ @PostConstruct public void init() { util = this; util.tsLanguageTestService = this.tsLanguageTestService; }
}
主要是 init() 方法和@PostConstruct 注解,这样 tomcat 启动时就会把@Autowired注解的类实体化
原文地址:https://www.cnblogs.com/silense/p/8278957.html
时间: 2024-11-10 05:15:21