SpringAware 学习

阅读: 评论:0

SpringAware 学习

SpringAware 学习

  1. Spring依赖注入最大的亮点,就是所有的bean对Spring容器的存在是没有意识的,即你可以将你的容器替换成别的容器,如Google Guice,这是Bean之间的耦合度很低。
  2. 但是实际项目开发中,你不可避免的用到Spring容器本身的功能资源,这时你的Bean必须要意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware.其实Spring Aware就是Spring设计用来框架内部使用的,但是Bean将会和Spring框架耦合
  3. spring 提供的aware的接口:

    BeanNameAware :可以获取容器中bean的名称

    BeanFactoryAware:获取当前bean factory这也可以调用容器的服务

    ApplicationContextAware: 当前的applicationContext, 这也可以调用容器的服务(可以获得Spring容器的所有服务)

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

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

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

  4. Demo

    1. @Configuration
      @ComponentScan(&#ls.aware")
      public class AwareConfig {
      }
      
    2. public class AwareMain {public static void main(String[] args){AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(AwareConfig.class);AwareService awareService = Bean(AwareService.class);awareService.outputResult();annotationConfigApplicationContext.close();}
      }
      1. @Service
        public class AwareService implements ResourceLoaderAware , BeanNameAware {private String beanName;private ResourceLoader resourceLoader;@Overridepublic void setBeanName(String beanName) {this.beanName = beanName;}@Overridepublic void setResourceLoader(ResourceLoader resourceLoader) {sourceLoader = resourceLoader;}public void outputResult(){System.out.println("Bean的名称是:"+beanName);Resource resource = Resource("");try{//此处的IOUtils,是来自 org.apachemons.io.IOUtils;System.out.println("ResourceLoader内容:"+ InputStream()));}catch (IOException e){e.printStackTrace();}}
        }

本文发布于:2024-02-05 07:55:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170727812664725.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:SpringAware
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23