我使用的是弹簧版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初始化之后的运行时,不存在所有属性的问题。