我知道webapplicationcontext
用于面向Spring MVC体系结构的应用程序?
我想知道applicationcontext
在MVC应用程序中有什么用途?在applicationcontext
中定义了什么样的bean?
Web Application context扩展的Application context,它被设计为与标准javax.servlet.ServletContext一起工作,以便能够与容器通信。
public interface WebApplicationContext extends ApplicationContext {
ServletContext getServletContext();
}
在WebApplicationContext中实例化的Bean如果实现ServletContextAware接口,也将能够使用ServletContext
package org.springframework.web.context;
public interface ServletContextAware extends Aware {
void setServletContext(ServletContext servletContext);
}
对于ServletContext实例,可以做很多事情,例如通过调用getResourceStream()方法访问WEB-INF资源(xml配置等)。通常,servlet Spring应用程序中在Web.xml中定义的所有应用程序上下文都是Web应用程序上下文,这既包括根webapp上下文,也包括servlet的app上下文。
此外,依赖于web应用程序上下文功能可能会使您的应用程序更难测试,您可能需要使用MockServletContext类进行测试。
这允许您将一些服务作为整个应用程序的单例运行(Spring Security bean和基本数据库访问服务通常驻留在这里),将另一些服务作为相应servlet中的独立服务运行,以避免bean之间的名称冲突。例如,一个servlet上下文将为web页面提供服务,另一个将实现无状态web服务。
当您使用spring servlet类时,这种两个级别的分离就会出现:要配置根应用程序上下文,您应该在web.xml中使用context-param标记
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/root-context.xml
/WEB-INF/applicationContext-security.xml
</param-value>
</context-param>
(根应用程序上下文由Web.xml中声明的ContextLoaderListener创建。)
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
)和servlet标记,用于servlet应用程序上下文
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>app-servlet.xml</param-value>
</init-param>
</servlet>
请注意,如果init-param将被省略,那么spring将在本例中使用myServlet-servlet.xml。
问题内容: 应用程序上下文和Web应用程序上下文之间有什么区别? 我知道用于Spring MVC架构的应用程序吗? 我想知道应用程序中有什么用途?什么样的豆类被定义? 问题答案: Web应用程序上下文扩展了应用程序上下文,该上下文旨在与标准javax.servlet.ServletContext一起使用,因此能够与容器进行通信。 如果WebBean中实现ServletContextAware接口,
1、BeanFactory是Spring的最底层接口,包含bean的定义,管理bean的加载,实例化,控制bean的生命周期,特点是每次获取对象时才会创建对象。 ApplicationContext是BeanFactory的子接口,拥有BeanFactory的全部功能,并且扩展了很多高级特性,每次容器启动时就会创建所有的对象。 ApplicationContext的额外功能: 继承MessageS
问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型
我刚接触Spring,我读到BeanFactory也称为基本IOC,ApplicationContext称为高级IOC。 我读到: BeanFactory容器是为DI提供基本支持的最简单的容器,由org.springframework.beans.factory.BeanFactory接口定义。BeanFactory和相关接口,如BeanFactoryAware、InitializingBean、
问题内容: 我是AngularJS的新手。谁能解释一下这些AngularJS运算符之间的区别:用适当的示例隔离范围时。 问题答案: 允许将在指令属性上定义的值传递到指令的隔离范围。该值可以是简单的字符串值(),也可以是带有嵌入式表达式()的AngularJS插值字符串。可以将其视为从父作用域到子指令的“单向”通信。约翰·林德奎斯特(John Lindquist)进行了一系列简短的电视广播,解释了每
问题内容: 我是AngularJS的新手。谁能解释一下这些AngularJS运算符之间的区别:用适当的示例隔离范围时。 问题答案: 允许将在指令属性上定义的值传递到指令的隔离范围。该值可以是简单的字符串值(),也可以是带有嵌入式表达式()的AngularJS插值字符串。将其视为从父作用域到子指令的“单向”通信。 允许指令的隔离范围将值传递到父范围中,以便在属性中定义的表达式中进行求值。请注意,指令