uestc325
2012-09-11 16:02
浏览 610
已采纳

spring中的bean何时被实例化的

今天在读spring技术内幕的时候,里面有一句话,在容器初始化完成以后,IoC容器的使用就准备好了,在客户第一次向IoC容器请求Bean时,IoC容器对相关的Bean依赖关系进行注入。当我deBug项目的时候,发现TOMCAT启动的阶段,就开始调用相关配置Bean的构造方法实例化,我想知道bean到底是在那个阶段实例化?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • jinnianshilongnian 2012-09-11 16:04
    已采纳

    1、单例是在Spring IoC容器初始化时初始化,容器初始化完毕 Bean就被初始化了
    即默认是立即初始化 可以设置lazy="true" 来延迟初始化(即第一次访问时)

    2、原型 是获取时初始化

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • surelei 2012-09-11 16:05

    那要看你使用的是什么框架了,有些框架在应用启动时就向spring容器请求bean实例化了。
    一般来说,客户第一次向容器请求bean时实例化的说法是没错的。

    评论
    解决 无用
    打赏 举报
  • iteye_5246 2012-09-11 16:09

    这要说道spring bean的作用域了。、
    参见[url]http://demojava.iteye.com/blog/1409988[/url]
    1.默认web服务器启动时初始化 singleton 在每个Spring IoC容器中一个bean定义对应一个对象实例。

    2.prototype 一个bean定义对应多个对象实例。

    3.request 在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例,它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext情形下有效。

    4.session 在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

    5.global session 在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext情形下有效。
    还有自定作用域的spring

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题