03-Bean高_特性.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
03-Bean高_特性

第三章 Bean 的高级特性;前章回顾;Bean的作用域 Bean的生命周期 Bean的继承 注入依赖对象的方式 Spring2.5自动扫描机制 ;Bean的作用域;request 和 session 作用域。 只在Web应用中有效。 须在Web应用中增加额外的配置。 RequestContextListener RequestContextFilter;延迟初始化bean 在Spring 容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean时才初始化bean。如: bean id=xxx class=“org.cric.OrderServiceBean lazy-init=true/ 如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下: beans default-lazy-init=true“ ... 不建议使用。;强制初始化Bean。 Spring默认总是先初始化主调Bean,然后再初始化依赖Bean。 极端的情况时,依赖的Bean没有实时初始化。 depends-on 属性。可在初始化主调Bean之前,强制初始化一个或多个Bean。;scope属性为prototype的bean 客户端每次请求(调用getBean(“”)方法)都产生一个新的实例。 实例化后,完全交给客户端代码管理,容器不再追踪其生命周期。并不知道bean何时销毁。 scope属性为singleton的bean scope的默认属性值。 客户端每次请求都返回一个共享实例。 客户端不能控制bean的生命周期。 由容器控制bean的产生,销毁。;Spring 容器知道singleton bean何时实例化结束,何时销毁。 Spring容器可以管理实例化结束之后和销毁之前的行为。 管理bean的生命周期行为: bean的全部依赖注入之后。 bean即将销毁之前。;管理Bean全部依赖注入之后的行为的方法 方法一:使用init-method属性 方法二:实现InitializingBean接口 实现方法 afterpropertiesSet(),此方法就是依赖注入之后的自动执行体。 实现InitializingBean接口污染了代码,是侵入式设计,推荐使用init-method属性。 ;管理Bean销毁之前的行为的方法 方法一:使用destroy-method属性 方法二:实现DisposableBean接口 实现destroy(),此方法就是bean销毁之前的自动执行体。 实现DisposableBean接口污染了代码,是侵入式设计,推荐使用destroy-method属性。 ;使用全局配置 beans属性的default-init-method beans属性的default-destroy-method 全局配置可被bean自身的配置覆盖。 ;Bean的继承;注入依赖对象的方式;注入依赖对象—手工;使用p命名空间来简化配置文件。 引入p命名空间。 简化依赖的配置 注意:如果主调类里有属性和xxx-ref相同,则会产生异常。;在java代码中使用@Autowired或@Resource注解方式进行装配。需要在xml配置文件中配置以下信息 这个配置隐式注册了多个对注释进行解析处理的处理器AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor 注: @Resource注解在spring安装目录的lib\j2ee\common-annotations.jar ;在java代码中使用@Autowired注解方式进行装配 默认按类型装配依赖对象。 此注解为Spring提供。 设置required属性为false,允许依赖对象null值。 结合@Qualifier注解,按名称装配。 ;在java代码中使用@Resource注解方式进行装配 默认按名称装配依赖对象。 此注解为java本身提供,推荐使用。 通过@Resource的name属性显式指定名称。 如果没有指定name属性,当注解标注在字段上,即默认取字段的名称,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象. 注意:如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时, @Resource注解会回退到按类型装配。但一旦指定了n

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档