Java 在spring中访问缓存的ApplicationContext
我需要在两个不同的类中两次从同一ApplicationContext获取单例bean 示例代码段:Java 在spring中访问缓存的ApplicationContext,java,spring,Java,Spring,我需要在两个不同的类中两次从同一ApplicationContext获取单例bean 示例代码段: CLass A { public void foo(){ ApplicationContext context = new ClassPathXmlApplicationContext("common.spring.xml"); MyParametrizedSingletonClass myParametrizedSingletonClass = (MyParametrized
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..
}
由于MyParameterizedSingleToClass是一个singletom类,如果为同一个构造函数参数多次调用其构造函数,则会抛出错误
如何使用spring缓存和重用ApplicationContext?
Autowire
bean
默认情况下,spring会将自动连接的bean注入到所需的类中,并且不会每次都创建新的bean。默认情况下,它们是单例的。您正在创建两个不同的上下文,所以即使bean是单例的,它也会为每个上下文创建一个实例
如果要在common.spring.xml文件中为bean名称MyParameterizedSingleToClass缓存应用程序上下文,请在xml文件中定义bean时将作用域单例作为参数添加到其中,为什么不将依赖项注入类
A
和B
?我想这些应该怎么办。