⼀次Bean(clazz)空指针现象:
  windows本地环境启动
@Autowired
private CfgCityMapper cfgCityMapper;
public CfgCityServiceImpl() {
//实例化时直接查询全部地市
allCityList = Bean(CfgCityMapper.class).queryAllWithCfgCounty();
}
本地启动不会报错
打成jar启动,部署linux或者本地部署,报错NullPointException ,改成
@PostConstruct
public void init(){
//实例化时直接查询全部地市
allCityList = Bean(CfgCityMapper.class).queryAllWithCfgCounty();
spring boot原理和生命周期}
还是异常,改成
@PostConstruct
public void init(){
//实例化时直接查询全部地市
allCityList =cfgCityMapper.queryAllWithCfgCounty();
}
没有错
原因:待分析
20200628
此类型错误再次出现,初步分析
1、Bean()不能在Bean的⽣命周期中(构造函数、BeanPostProcessor、InitializingBean均不可),
当前解决⽅案是在⽅法⾥定义init⽅法初始Bean(),设置相关属性
2、之所以在打成jar启动不⾏,本地启动却可以,可能是根据俩者加载的速度不同?如果在 InitializingBean ⾥先sleep⼏秒,再获取Bean,也是不会报错的
但是bean的加载顺序应该有⼀定的规律的才对,不会收加载速度影响吧,待分析

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。