说明:使用普通的static静态代码块会出现,waterItemMapper为null的情况
@Autowired
private WaterItemMapper waterItemMapper;
private void initCentralWaterSystemData() { initSystem(); initItem(); initParam(); }
static{
initCentralWaterSystemData();
}
解决办法:
使用@PostConstruct注解,该注解的作用是:在整个项目初始化完成后执行此注解下的方法,故可以写成
@Autowired
private WaterItemMapper waterItemMapper;
@PostConstruct
private void initCentralWaterSystemData() { initSystem(); initItem(); initParam(); }
注意点:使用此注解会报bean重复,可以修改applicationContent配置文件,将<aop:aspectj-autoproxy proxy-target-class="true"/>
红色部分去掉