![](/img/trans.png)
[英]Spring ApplicationContext not cached for integration testing with Maven
[英]Accessing cached ApplicationContext in spring
我需要在2個不同的類中兩次從同一ApplicationContext中獲取一個singleton bean。
片段示例:
CLass A {
public void foo(){
ApplicationContext context = new ClassPathXmlApplicationContext("common.spring.xml");
MyParametrizedSingletonClass myParametrizedSingletonClass = (MyParametrizedSingletonClass) context.getBean("myParametrizedSingletonClass");
// do more stuff..
}
CLass B {
public void bar(){
ApplicationContext context = new ClassPathXmlApplicationContext("common.spring.xml");
MyParametrizedSingletonClass myParametrizedSingletonClass = (MyParametrizedSingletonClass) context.getBean("myParametrizedSingletonClass");
// do more stuff..
}
由於MyParametrizedSingletonClass是單例,因此如果針對相同的構造函數參數多次調用其構造函數,則會引發錯誤。
如何使用Spring緩存和重用ApplicationContext?
您正在創建兩個不同的上下文,因此,即使bean是單例的,它也會為每個上下文創建一個實例,
如果要緩存應用程序上下文,則可以創建一個類並提供應用程序上下文的單例實例
Autowire
bean。
默認情況下,spring會將自動裝配的bean注入所需的類中,並且不會每次都創建新的bean。 它們默認為單例。
在bean名稱myParametrizedSingletonClass的common.spring.xml文件中,在xml文件中定義bean的同時,將范圍單例作為參數添加到其中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.