Spring不会在@PostConstruct时注入循环依赖

时间:2015-06-05 13:00:06

标签: java spring

我使用的是弹簧版4.1.6.RELEASE,我发现了一些奇怪的东西。之后

  

@PostConstruct private void initialize(carServiceImpl ..)

方法被称为具有依赖性的其他服务,其具有自动装配的DAO和服务。我发现在PostConstruct中,spring只注入了第一个属性 - 在newRequestService的顶部。如果我向下移动例如newRequestService下面的carsRegionChangesService,则最后一个carsRegionChangesService = null和newRequestService = null。

@Service
public class CarsServiceImpl implements CarsService {    

@Autowired
    private CarsDAO carsDAO;
    @Autowired
    private CarsDao carsDao;
    @Autowired
    private CarsTypesService carsTypesService;
    @Autowired
    private RegionsService regionsService;
    @Autowired
    private RegionsDependenceService regionsDependenceService;
    @Autowired
    private CarsRegionChangesService carsRegionChangesService;
    @Autowired
    private NewRequestService newRequestService; //this = null
}

我没有注入属性的NullPointerException:

  

java.lang.NullPointerException at   com.stil.db.service.CarsServiceImpl.getCarsFromRegion(CarsServiceImpl.java:238)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:497)at   org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)     在   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201)     在com.sun.proxy。$ Proxy39.getCarsFromRegion(未知来源)at   com.stil.db.service.NewRequestServiceImpl.getCarsListForUpdate(NewRequestServiceImpl.java:809)     在   com.stil.db.service.NewRequestServiceImpl.getCarsListForUpdate(NewRequestServiceImpl.java:750)     在   com.stil.db.service.NewRequestServiceImpl.greenRequest(NewRequestServiceImpl.java:312)     在   com.stil.db.service.NewRequestServiceImpl.initialize(NewRequestServiceImpl.java:149)

任何想法?在使用PostConstruct初始化之后的运行时,不存在所有属性的问题。

0 个答案:

没有答案