• Spring Aware获取Bean和其他对象


      Spring的容器托管了所有bean,实际项目中我们经常会用到容器中的功能资源,这时候就用到了 Spring Aware。简单来说,就是Spring Aware可以帮助你获取到Spring容器中的Bean或者其他资源。

      Spring 提供的Aware接口如下:

        BeanNameAware          :获取到容器中Bean的名称

        BeanFactoryAware          :获得当前bean factory,这样可以调用容器的服务

        ApplicationContextAware*       :当前的ApplicationContext,这样可以调用容器的服务

        MessageSourceAware          :获得message source,这样可以获得文本信息

        ApplicationEventPublisherAware  :应用事件发布器,可以发布事件

        ResourceLoaderAware       :获得资源加载器,可以获得外部资源文件

      Spring Aware的目的是为了让Bean获得Spring容器的服务。因为ApplicationContext接口集成了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,所以Bean继承ApplicationContextAware可以获得Spring容器的所有服务。

      例子:

    /**
     * spring工具类,可获取spring容器中的bean
     * create by en
     * at 2019/1/23 16:43
     **/
    @Component  // 必须是 spring bean 才能成功执行下面方法
    public class SpringUtil implements BeanFactoryAware {       // 实现BeanFactoryAware,获取 BeanFactory
    
        private static BeanFactory beanFactory;
    
        // 重写 setBeanFactory 方法,获取 BeanFactory
        @Override
        public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
            this.beanFactory = beanFactory;
        }
    
        public static <T> T getBean(Class<T> c) {
            return beanFactory.getBean(c);
        }
    
        public static <T> T getBean(String name) {
            return (T) beanFactory.getBean(name);
        }
    
    }

    但是需要注意Spring Aware本来就是Spring设计用来框架内部使用的,若使用了Spring Aware,你的Bean将会和Aware框架耦合。

  • 相关阅读:
    分期付款购买固定资产账务处理
    会计要素计量
    接受现金捐赠分录
    分配股票股利的分录
    R语言代写对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
    R语言代写用随机森林和文本挖掘提高航空公司客户满意度
    R语言代写时间序列TAR阈值模型分析 2
    R语言代写时间序列TAR阈值模型分析
    R语言代写文本挖掘tf-idf,主题建模,情感分析,n-gram建模研究
    R语言代写文本挖掘NASA数据网络分析,tf-idf和主题建模
  • 原文地址:https://www.cnblogs.com/effortn/p/10310641.html
Copyright © 2020-2023  润新知