在bean创建中使用Spring contextloaderlistener角色

我查看了Contextloaderlistener和应用程序上下文的一些文档,并且基于此我了解的是Application Context是由ContextLoaderListener初始化的容器并加载所有的spring配置文件。 我不清楚哪个是基于提供的元数据来负责bean的创建。 它是ContextLoaderListener还是应用程序上下文。


ApplicationContext使用BeanFactory创建bean,它是将xml / annotations转换为类并管理每个类的生命周期的实际组件。

当在另一个容器(例如像tomcat的servlet引擎)内运行spring时,会使用ContextLoaderListener来检测应用程序的启动并初始化ApplicationContext。 当在另一个上下文中使用spring时(例如,通过主方法运行java程序),应用程序可以直接创建AppContext,而不需要像这样的ContextLoaderListener:

public class Main {
    public static void main(String[] args) throws Exception {
       ApplicationContext ctx = new ClassPathXmlApplicationContext(
    "context.xml");
    Foo foo = (Foo) ctx.getBean("fooBean");
    foo.doSomethingCool();

}}


  • Spring中的ApplicationContext背后的想法是,为了在需要的地方正确注入对象,有些事情需要知道用户指定的配置,并根据此配置注入依赖关系。
  • ApplicationContext是基于用户提供的配置(通过xml文件或注释)根据用户的位置和注入内容(以及其他内容,如AOP切入点等)理解用户的愿望的。
  • 以servlet命名的上下文([servlet-name] -context.xml)是一个WebApplicationContext ,它是主要ApplicationContext的子上下文,它由contextConfigLocation中列出的文件创建并由ContextLoaderListener加载。 孩子可以访问父代中定义的任何bean,但父代无权访问子代中定义的bean
  • ContextLoaderListener是一个ServletListener。 所以在JSP / Servlet规范中,Servlet Listener在某些情况下会被容器调用
    事件发生。 在这种情况下,它会在接下来的时间被调用
    ServletContext是为Web应用程序创建的。 当它得到
    称为,在ContextLoaderListener内部它将创建/实例化
    一个ApplicationContext并载入你用xml文件设置的
    上下文参数名称和值标签。
  • contextConfigLocation参数和这个Spring监听器一起使用org.springframework.web.context.ContextLoaderListener
  • ContextLoaderListener执行监听器的启动来启动Spring的根WebApplicationContext
  • ContextLoaderListener是一个启动Spring容器的类。 基本上每个Spring应用程序都由几个bean和布线组成(声明性描述哪些bean相互依赖)。 这个描述历史上是用XML编写的(现在我们有注释,Java配置,CLASSPATH扫描等等)
  • ContextLoaderListener读取该文件,找到你的类,实例化它们和连线。 所有的豆子都放在一个容器内。
  • 链接地址: http://www.djcxy.com/p/82039.html

    上一篇: Spring contextloaderlistener role in bean creation

    下一篇: Initialize spring beans without app server restart or at runtime