加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

spring容器 的启动过程

(2010-07-20 15:06:33)
标签:

spring

启动过程

杂谈

分类: java和数据库
什么时候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建立实例

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有