ApplicationContext 继承的接口

    科技2022-08-17  108

    BeanFactory

    1 Object getBean(String name) throws BeansException;

    为实现这个接口需要

    1.1 线程安全的数据结构保存bean的定义信息

    1.2 可以通过bean的ID和类型找到这个bean定义

    1.3 线程安全的数据结构保存已创建过的对象(单例bean实例复用)

    1.4 父子容器,子容器无时从父容器中找

    1.5  需要判断bean的作用域

     

    2  <T> T getBean(String name, Class<T> requiredType) throws BeansException;

    泛型,根据传入的class类型   将1 接口中的Object 对象转换为目标类型对象并返回

     

    3  Object getBean(String name, Object... args) throws BeansException;

    获得 指定构造方法参数 的对象

    4  <T> T getBean(Class<T> requiredType) throws BeansException;

    获得指定class 类型的对象 class名首字母变小些作为name找对应对象?

    5  <T> T getBean(Class<T> requiredType, Object... args) throws BeansException;

    6 <T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);

    7 <T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType);

    8 boolean containsBean(String name);

    判断指定name的bean是否在此容器或其父容器中

    9 boolean isSingleton(String name) throws NoSuchBeanDefinitionException;

    判断指定name的bean是否是单例的

    10 boolean isPrototype(String name) throws NoSuchBeanDefinitionException;

    11 String[] getAliases(String name);

    返回指定name的bean的所有别名

     

    ListableBeanFactory

    批量获取bean实例,批量获取bean名字的接口   不用像BeanFactory一样只能一个一个获取。 使用时不需要考虑已注册的bean和父容器中的bean

     

    HierarchicalBeanFactory

    1 BeanFactory getParentBeanFactory(); // 返回父容器实例 2 boolean containsLocalBean(String name); // 忽略父容器 查询某个名字的bean是否存在

    Environment

    当前应用运行的环境

     

    MessageSource

    提供了三个获取消息的接口

    差异在于  1 消息不存在时返回默认消息还是抛出异常 以及 2 入参的不同

     

    ApplicationEventPublisher

    向所有注册监听此事件变化的观察者发送事件变化

    void publishEvent(Object event);

     

    ResourcePatternResolver

    资源解析器

    1 Resource[] getResources(String locationPattern) throws IOException;

    批量加载资源

    2 Resource getResource(String location);

    加载单个资源

    3 ClassLoader getClassLoader();

    获得类加载器

    Processed: 0.014, SQL: 9