解决spring下@Autowired注解注入的对象为null的问题

开发过程中,在MaintBusiness.java中注入一个对象:

@Autowired
private RegionService regionService;

使用的时候,发现这个service为null,将MaintBusiness加上注解@Component交给Spring管理,仍不能解决问题。

追随代码,发现调用的时候是classforName的newInstance实例化的MaintBusiness,和new的差不多。

问题很明确,MaintBusiness是被反射调用的,并没有被spring管理。

解决办法:1、在MaintBusiness中,添加一个静态对象;

private static MaintBusiness maintBusiness;

2.然后采用@PostConstruct修饰一个方法:

@PostConstruct
public void init(){
    maintBusiness = this;
}

调用方式:

maintBusiness.regionService.updateRegionDataDom(dataDom);

此时的maintBusiness.regionService就不为空,并且解决了new regionService时候里面dao也为空的问题。

猜你喜欢

转载自blog.csdn.net/weixin_38316944/article/details/114673372