zoukankan      html  css  js  c++  java
  • Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.6.2 ApplicationContextAware和BeanNameAware

    6.6.2 ApplicationContextAware和BeanNameAware

    当ApplicationContext创建了一个实现org.springframework.context.ApplicationContextAware接口的对象实例时,就为该实例提供了ApplicationContext引用。

    public interface ApplicationContextAware {
    
        void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
    
    }

    因此,bean可以通过ApplicationContext接口以编程方式操作创建它们的ApplicationContext,或者通过将引用强制转换为此接口的已知子类(例如ConfigurableApplicationContext)来暴露额外的功能。一种用途是对其他bean进行编程式检索。有时这种能力很有用; 然而,通常你应该避免使用它,因为它将代码耦合到Spring并且不遵循协作者作为属性提供给bean这样的控制反转形式。 ApplicationContext的其他方法提供对文件资源的访问,发布应用程序事件和访问MessageSource。这些附加功能在第6.15节“ApplicationContext的额外功能”中介绍。

    从Spring 2.5开始,自动装配是另一种获取ApplicationContext引用的可选方法。“传统”的构造函数和byType自动装配模式(如第6.4.5节“自动装配协作者”中所述)可以分别为构造函数参数或setter方法参数提供ApplicationContext类型的依赖关系。为了获得更大的灵活性,包括使用新的基于注解的自动装配字段和多参数方法的能力。如果您这样做,ApplicationContext将自动装配带有@Autowired注解的字段,构造函数参数或方法参数。 有关更多信息,请参见第6.9.2节“@Autowired”。

    当ApplicationContext创建实现org.springframework.beans.factory.BeanNameAware接口的类时,该类提供了在其关联对象定义中定义的名称的引用。

    public interface BeanNameAware {
    
        void setBeanName(string name) throws BeansException;
    
    }

    该回调函数在普通bean属性填充之后但在初始化回调之前调用,例如InitializingBean afterPropertiesSet或自定义init方法。

  • 相关阅读:
    C++学习之路: share_from_this<T>类的使用
    Linux学习: TCP粘包问题
    C++学习之路: 线程封装(基于对象编程)
    js数组方法
    React 性能优化
    HelloWorld
    设置表格边框的通用写法
    用于项目的SQL写法
    添加服务,用于定期执行某个程序或者应用程序(windows service)
    sql中除法,保留小数点位数
  • 原文地址:https://www.cnblogs.com/springmorning/p/10355859.html
Copyright © 2011-2022 走看看