hom*_*unt 26 java configuration spring config spring-mvc
我的同事经常使用"应用程序上下文"这个词.在许多文章中,这种搭配也经常使用.
我目前的理解:应用程序上下文是单个xml文件.
但我明白,如果我是对的,人们不会使用"应用程序上下文"而不是配置xml文件.
你能帮我解决这个问题吗?
Lui*_*oza 25
@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...
}
}
Run Code Online (Sandbox Code Playgroud)对于使用Spring MVC的Java Web应用程序,DispatchServlet
将为您加载应用程序上下文,因此您只需在应用程序的WEB-INF文件夹中创建一个springapp-servlet.xml文件.
请注意,应用程序上下文与单个配置(基于XML或不基于XML)相关联.期.
理解了这一点后,您还可以理解每个应用程序可以拥有多个应用程序上下文.这是ApplicationContext
在同一个应用程序中有两个或更多个s.从控制台应用程序的最后一个示例中,这很容易检查:
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...
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我们有两个使用相同XML配置的应用程序上下文.你能做这个吗?是的,你实际上是在这里看到的.那有什么区别呢?的主要不同之处在于春豆单范围是单身每个应用程序的情况下,这意味着检索时Bar
是在applicationContext.xml文件配置为从豆context
也不会是相同的,从检索它context2
,但几个检索context
将返回相同的Bar
bean实例.
这被认为是好的还是坏的做法?也不是,它将取决于要解决的问题(在最后一个例子的情况下,我会说这是一个不好的做法).大多数人会建议将所有bean配置在一个地方(通过XML或其他)并由单个应用程序上下文加载.
让我们用简单的话来理解这一点。
ApplicationContext是Spring 应用程序中的中心接口,用于向应用程序提供配置信息。它是在应用程序开始运行时创建的。
它提供了我们的应用程序所需的完整配置:
ETC。
package com.srmhitter9062.spring;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ApplicationContextUtils implements ApplicationContextAware {
private static ApplicationContext ctx;
@Override
public void setApplicationContext(ApplicationContext appContext)
throws BeansException {
ctx = appContext;
}
public static ApplicationContext getApplicationContext() {
return ctx;
}
}
Run Code Online (Sandbox Code Playgroud)
我们可以在下面的快照中了解有关应用程序对象的一些想法。
总而言之,我们可以说应用程序上下文是为应用程序运行而创建的配置对象。
定义applicationContext.xml
了“root webapp context”的bean。它是一个网络感知的ApplicationContext。
它用于在 Web 应用程序中的所有 servlet 之间共享 bean。
我希望这是有帮助的。
归档时间: |
|
查看次数: |
29341 次 |
最近记录: |