`
eric_hwp
  • 浏览: 126596 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring容器启动

 
阅读更多

什么时候spring容器启动?
其实就是程序中执行加载 xml配置文件的时候

  • 1.应用程序下加载

ApplicationContext ctx = new ClassPathXmlApplicationContext("testspring2.xml");

  • 2.web模式下加载

web.xml:
    <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:spring-hibernate-mysql.xml</param-value>
    </context-param>
    <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


可以看日志,每次执行new ClassPathXmlApplicationContext(),都会显示下面日志:

程序执行到:
new ClassPathXmlApplicationContext("testspring2.xml");

2010-5-29 0:48:48 org.springframework.context.support.AbstractApplicationContext prepareRefresh

先刷新ApplicationContext,调用AbstractApplicationContext类的 prepareRefresh

注:
AbstractApplicationContext是 ClassPathXmlApplicationContext的父类
public abstract class AbstractApplicationContext extends DefaultResourceLoader
        implements ConfigurableApplicationContext, DisposableBean {
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@bf32c: display name [org.springframework.context.support.ClassPathXmlApplicationContext@bf32c]; startup date [Sat May 29 00:48:48 CST 2010]; root of context hierarchy
2010-5-29 0:48:48 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [testspring.xml]

开始加载spring配置文件,调用xml.XmlBeanDefinitionReader类的loadBeanDefinitions方法进行加载

注意:spring 和 hibernate 常见的错误之一,经常在读取xml文件时出现语法和格式的错误,如DTD错误等.多数是使用者自己在书写xml时犯的语法错误,但也有一些是hibernate和 spring不同版本的BUG
2010-5-29 0:48:48 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@bf32c]: org.springframework.beans.factory.support.DefaultListableBeanFactory@af8358
2010-5-29 0:48:48 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons

获得缺省的工厂对象,spring缺省的工厂对象是
DefaultListableBeanFactory.preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@af8358: defining beans [personServiceBean]; root of factory hierarchy

最后为所有xml文件中定义(以及采用标注方式定义)的bean建立实例
分享到:
评论

相关推荐

    spring容器启动和关闭时事件监听

    spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听

    Spring容器启动流程.txt

    Spring 容器启动流程

    Java+Spring+Spring容器启动流程方法调用xmind脑图

    1. Spring容器的启动流程 2. 循环依赖 3. Spring 中Bean的创建 4. Spring 方法xmind脑图

    获取spring容器的方法

    这样,在Spring容器启动时,它会自动调用`setApplicationContext`方法,将`ApplicationContext`实例注入到实现了`ApplicationContextAware`的类中。 ### 结论 选择哪种方法获取Spring容器主要取决于具体的应用场景...

    详解Spring IOC 容器启动流程分析

    Spring IOC 容器启动流程分析 Spring IOC 容器是 Java 企业级应用程序的核心组件之一,它提供了一个统一的依赖注入机制,使得应用程序的组件之间能够松耦合。Spring IOC 容器的启动流程是整个 Spring 框架的核心...

    在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息

    然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细介绍如何在这样的场景下实现这一目标。 首先,让我们来理解如何在非Spring...

    spring集成socket服务

    我们可以实现`Lifecycle`接口或`SmartLifecycle`接口,以便在Spring容器启动完成后触发自定义的初始化操作,例如启动Socket服务器。 1. **集成Socket服务**:在Spring中集成Socket服务,我们通常会使用`java.net....

    spring容器的触发事件 ClassPathXmlApplicationContext的start()方法的用法

    该配置文件定义了一个名为 `ApplicationEventListener` 的 Bean,类型为 `ioc.test.ApplicationEventListener`,当 Spring 容器启动时会自动实例化这个 Bean。 #### 六、事件监听器实现 ```java package ioc.test;...

    spring ioc和aop原理流程图(详细)

    2. **容器初始化**:当Spring容器启动时,会读取配置信息并构建Bean的定义。这个过程包括解析配置文件、实例化Bean定义、处理依赖注入等。 3. **依赖注入(DI)**:是IOC的核心。Spring容器负责管理Bean的生命周期...

    spring.xls

    * 在spring容器启动的时候,就会发现错误 * 有可能会造成一些数据长时间驻留在内存中 * lazy-init为"true"当context.getBean时创建 bean为多例时,必须用这种方案创建对象 * 不能及时发现错误 * 数据会在需要...

    JDK8 下 SpringBoot 应用动态编译 Java 源码并注入 Spring 容器

    基于接口、抽象类实现不停机动态调整代码的目的,将修改后的源码文件放置于指定目录下,读取文件后执行动态编译方法,即可将该类重新加载,新的类可以在Spring容器从新注册,且仅在当前窗口生效。如果重启了服务或...

    spring boot容器启动流程

    Spring Boot 容器启动流程 Spring Boot 容器启动流程是基于 Spring Cloud 快速搭建的关键步骤之一。今天,我们将深入探讨 Spring Boot 容器启动流程的各个方面。 一、前言 在 Spring Cloud 大行其道的今天,如果...

    《精通Spring2.X企业应用开发详解》

    本章节将详细介绍Spring容器启动时的主要流程及关键步骤。 1. **初始化BeanFactory** - **描述**:首先,根据配置文件实例化`BeanFactory`对象。这一过程通过调用`getBeanFactory()`方法来实现,具体的实现细节则...

    Spring 容器后处理器

    ### Spring 容器后处理器...`PropertyOverrideConfigurer`是另一个容器后处理器,它允许在容器启动时覆盖已有的属性设置。这在某些场景下非常有用,比如测试环境中需要覆盖生产环境的某些配置值。 配置示例: ```xml ...

    spring-boot-initializer

    当Spring容器启动时,所有实现了ApplicationContextInitializer接口的类都会在容器初始化阶段被调用,允许我们在Spring应用启动前对容器进行必要的配置。 在Spring Boot中,你可以通过实现...

    Spring-MyBatis-Ajax重点详解

    Spring 容器启动时候不创建对象,每次调用 getBean 创建新对象。 对象生命周期管理包括单例对象和多例对象两种。在单例对象时候,创建对象时候执行 init-method 属性指定的方法。关闭容器时候执行 destroy-method ...

    netty4与spring集成

    这样可以确保 Netty 服务器在 Spring 容器启动后自动运行。 4. **ChannelHandler 配置**: ChannelHandler 是 Netty 中处理网络事件的核心组件。在 Spring 集成中,可以创建一个 ChannelHandlerContext 的工厂类,该...

    spring+ajax+mybatis+springmvc笔记

    - **组件扫描**:Spring 容器启动后会扫描指定包下的所有类,如果类前有 `@Component` 等注解,则会将其纳入容器管理。 - **其他相关注解**: - `@Autowired` 和 `@Qualifier`:支持 setter 或构造器注入,用于...

Global site tag (gtag.js) - Google Analytics