如何解决应用程序上下文这是什么?
@feak给出了关于ApplicationContext
Spring
含义的直接答案。简而言之,它是一个加载配置的对象(通常 是 基于 XML文件 注释的对象),然后Spring将开始管理Bean及其好处:
要启动应用程序上下文,可以使用以下方法之一:
-
在应用程序的开头手动加载应用程序上下文。这是出于示例目的或在独立应用程序中完成的:
public class Foo { public static void main(String[] args) { ApplicationContext context = new ClasspathXmlApplicationContext("path/to/applicationContext.xml"); //use the context as you wish... }
}
-
如果使用Spring MVC的Java Web应用程序,
dispatchServlet
它将为您加载应用程序上下文,因此您只需要在应用程序的WEB-INF文件夹中创建 springapp-servlet.xml 文件。
请注意, (是否基于XML) 。期。
了解了这一点之后,您还可以理解每个应用程序可以拥有多个应用程序上下文。ApplicationContext
也就是说,在同一应用程序中有两个或多个。在控制台应用程序中的最后一个示例中,这很容易检查:
public class Foo {
public static void main(String[] args) {
ApplicationContext context =
new ClasspathXmlApplicationContext("path/to/applicationContext.xml");
ApplicationContext context2 =
new ClasspathXmlApplicationContext("path/to/applicationContext.xml");
//use the context as you wish...
}
}
请注意,我们有两个使用相同XML配置的应用程序上下文。你能做这个吗?是的,您实际上在这里看到它。那有什么区别呢?的
不同之处在于春豆单范围是singleton
,这意味着检索时Bar
是在applicationContext.xml文件配置为从豆context
的,从检索它context2
,但几个检索context
将返回相同的Bar
bean实例。
这是好事还是坏事? 取决于要解决的问题(在最后一个示例的情况下,我会说这是一种 做法)。大多数人会建议将所有bean配置在一个位置(通过XML或另一个位置)并由单个应用程序上下文加载。
解决方法
我的同事们经常使用“应用程序上下文”一词。在许多文章中,这种搭配也经常使用。
我目前的理解:应用程序上下文是单个xml文件。
但是我知道,如果我是对的,人们将不会使用“应用程序上下文”而不是配置xml文件。
您能帮我解决这个问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。