最近,我遇到了一個情況,基於彈簧的應用程序在訪問類(A)中的自動裝配字段時拋出「NullPointerApplication」。自動裝配的bean也用於其他類(B和C)。這些類(B和C)在訪問該bean時正常工作。彈簧自動裝配失敗,但應用程序啓動
applicaton-context.xml:
<bean id="myBean" class="x.y.x.MyBean">
</bean>
<context:component-scan base-package="x.y.z" />
Class MyBean{
public void m(){
}
}
@Component
Class A{
@Autowired
MyBean theBean;
public void methodA(){
theBean.m(); //Getting NPE
}
}
@Component
Class B{
@Autowired
MyBean theBean;
public void methodB(){
theBean.m(); // No NPEs, works fine
}
}
@Component
Class C{
@Autowired
MyBean theBean;
public void methodC(){
theBean.m(); // No NPEs, works fine
}
}
當我重新啓動應用程序一切工作正常。早些時候,如果bean自動裝配失敗的A類bean創建失敗並且應用程序不應啓動。相反,應用程序工作正常(除了A類)並且沒有找不到無法自動裝入的異常。所以我想知道這是一個罕見的隨機情況,春天自動裝配變得混亂?我是對的嗎?這是Spring的一個已知問題嗎?
這是完全重新啓動還是代碼熱部署? – Kyle
你可以發佈自動裝配和組件掃描啓用的xml配置嗎? – Kyle
我編輯了這個問題,應用程序使用組件掃描。是的,這是一個完全重新啓動,沒有代碼更改完成。 – broun