我正在将ApplicationContext用作Spring容器.
但是,由于我不想更改我的API,因此我觉得需要使用容器的多个实例,如下所示-
public static void main(String[] args)
{
ApplicationContext context = new ClasspathXmlApplicationContext("spring.xml");
...
objA = context.getBean(...);
objB = context.getBean(...);
}
// code for Class A
public void execute() // <-- cannot change this signature
{
ApplicationContext context = new ClasspathXmlApplicationContext("spring.xml");
objC = context.getBean(...); // earlier,this was objC = new C();
objC.method1("...");
}
因此,我最终使用了两个不同的ApplicationContext实例.什么时候具有多个ApplicationContext实例合适,什么时候不合适?
最佳答案
如果您可以控制这些类,请尝试实现ApplicationContextAware:
http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ApplicationContextAware.html
http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ApplicationContextAware.html
这会将applicationContext注入到类中,从而使您可以自由获取所需的任何类.
只要A类是在春季之前初始化的,它将起作用.从给出的代码来看就是这种情况.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。