Java 如何从另一个上下文访问bean

Java 如何从另一个上下文访问bean,java,spring,Java,Spring,我想访问一个Springbean,它已经在一个单独的上下文中自动连接 这可能吗 我想我可以使用ApplicationContext,并使用如下方式连接它: import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; public

我想访问一个Springbean,它已经在一个单独的上下文中自动连接

这可能吗

我想我可以使用ApplicationContext,并使用如下方式连接它:

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class ApplicationContextProvider implements ApplicationContextAware {
    private static ApplicationContext ctx = null;
    public static ApplicationContext getApplicationContext() {
        return ctx;
    }
    public void setApplicationContext(ApplicationContext ctx) throws BeansException {
        this.ctx = ctx;
    }
}


<bean id="applicationContextProvider" class="ApplicationContextProvider"></bean>
import org.springframework.beans.BeansException;
导入org.springframework.context.ApplicationContext;
导入org.springframework.context.ApplicationContextAware;
公共类ApplicationContextProvider实现ApplicationContextAware{
私有静态应用程序上下文ctx=null;
公共静态应用程序上下文getApplicationContext(){
返回ctx;
}
public void setApplicationContext(ApplicationContext ctx)抛出BeansException{
this.ctx=ctx;
}
}

这是否正确?

不,您所做的是为您在其中声明bean的当前上下文创建一个侦听器

我想访问一个Springbean,它已经在一个单独的应用程序中自动连接 上下文

如果需要进行一些自动连接,则需要根据配置类型(java与xml)使用
@import
导入其他上下文。比如说

<import resource="classpath:/path/to/otherAppContext.xml" />
您还可以使用与
DispatcherServlet
相同的方式来合并应用程序上下文。查看源代码以了解更多详细信息

ApplicationContext otherContext = ...// get other context  
BeanClass otherBean = otherContext.getBean(BeanClass.class);