spring依赖注入的最大亮点就是所有的bean感知不到spring容器的存在,但在实际开发中,我们不可避免的要用到spring容器本身的功能资源,这时,我们就必须意识到容器的存在(废话,都要跟容器进行交互了好么),才能调用spring所提供的资源,这就是所谓的Spring Aware。
Spring Aware的目的是为了让bean获得spring容器的服务。因为ApplicationContext接口集成了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,所以bean继承ApplicationContextAware可以获得spring容器的所有服务,但原则上我们还是用到什么接口就实现什么接口。
-----------示例---------------------------------------------------
service类,方法具体的执行类:

@Service
public class AwareService implements BeanNameAware,ResourceLoaderAware {
private String beanName;
private ResourceLoader loader; @Override
public void setBeanName(String name) {
this.beanName = name;
} @Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.loader = resourceLoader;
} public void outputResult(){
System.out.println("bean 的名称为:" + beanName);
Resource resource = loader.getResource("classpath:com/wzy/bj/aware/test.txt");
try{
System.out.println("ResourceLoader加载的文件内容为:" + IOUtils.toString(resource.getInputStream()));
}catch (Exception e){
e.printStackTrace();
}
} }
config类,相当于xml配置文件:
@Configuration
@ComponentScan("com.wzy.bj.aware")
public class AwareConfig {
}
测试类,此处直接main方法运行了:

public class AwareMain {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AwareConfig.class);
AwareService service = context.getBean(AwareService.class);
service.outputResult();
context.close();
}
}
结果:

 
 

Spring Aware的更多相关文章

  1. Spring知识点回顾(08)spring aware

    Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...

  2. Spring Boot实战笔记(五)-- Spring高级话题(Spring Aware)

    一.Spring Aware Spring 依赖注入的最大亮点就是你所有的 Bean 对 Spring容器的存在是没有意识的.即你可以将你的容器替换成其他的容器,如Google Guice,这时 Be ...

  3. Spring Aware容器感知技术

    Spring Aware是什么 Spring提供Aware接口能让Bean感知Spring容器的存在,即让Bean可以使用Spring容器所提供的资源. Spring Aware的分类 几种常用的Aw ...

  4. spring boot: spring Aware的目的是为了让Bean获得Spring容器的服务

    Spring Aware的目的是为了让Bean获得Spring容器的服务 //获取容器中的bean名称import org.springframework.beans.factory.BeanName ...

  5. spring扩展点之四:Spring Aware容器感知技术,BeanNameAware和BeanFactoryAware接口,springboot中的EnvironmentAware

    aware:英 [əˈweə(r)] 美 [əˈwer] adj.意识到的;知道的;觉察到的 XXXAware在spring里表示对XXX感知,实现XXXAware接口,并通过实现对应的set-XXX ...

  6. Spring Aware 到底是什么?

    通过如下前序两篇文章: Spring Bean 生命周期之"我从哪里来"? Spring Bean 生命周期之"我要到哪里去"? 我们了解了 Spring Be ...

  7. Spring Aware获取Bean和其他对象

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

  8. spring aware 的个人理解

    今天学习到了spring aware ,特地百度了下这方面的知识,现在谈下我的理解. Spring的依赖注入的最大亮点就是你所有的Bean对Spring容器的存在是没有意识的.即你可以将你的容器替换成 ...

  9. Spring Aware接口

    实现aware接口的bean必须在spring的xml文件中注册,由spring的IOC容器管理 1-ApplicationContextAware接口 可以获取spring的IOC容器 2-Bean ...

随机推荐

  1. 解决Spring MVC 对AOP不起作用的问题

    用的是 SSM3的框架 Spring MVC 3.1 + Spring 3.1 + Mybatis3.1 第一种情况: Spring MVC 和 Spring 整合的时候,SpringMVC的spri ...

  2. Altium Designer 3D模型的下载与添加

    先 先晒几个图:是不是很逼真啊..  ---------------------------------------教程---------------------------------------- ...

  3. EIP权限工作流升级说明-2019/3/12

    流程配置界面,允许流程处理按钮名称自定义:适用于流程过程中显示不同字面意思.流程节点按钮配置界面 流程处理过程中

  4. css实现点点点效果

    @keyframes dotDotDoting{ 0% { width 0px margin-right 15px } 25% { width 0px margin-right 15px } 50% ...

  5. Jquery学习理解 (课堂)

    Jquary概述 3 1.Jquary简介 3 1.1什么是jquery 3 2.使用jquary 4 2.1浏览器如何解析HTML文件 4 2.2利用选择器定位节点 4 2.3调用方法操作节点 5 ...

  6. win10更新后IE不见了

    只是快捷方式不见了,到C:\Program Files\internet explorer\iexplore.exe就看到了,可以正常运行

  7. java webservices 以Axis1.4方式 调用sap webservice接口.

    1. 首先需要下载Axis1.4 jar包,这个必应搜索大把,下载下来后把jar包加入eclipse工程项目路径中即可. 2. 下载mail.jar和activation.jar 俩个包.下载地址:h ...

  8. sqlmap用法

    用法 Usage: python sqlmap.py [options] Options: -h, --help Show basic help message and exit -hh Show a ...

  9. spring-redis 存储数据

    package com.fndsoft.bcis.utils; import org.springframework.beans.factory.annotation.Autowired;import ...

  10. POJ 2441 Arrange the Bulls(状态压缩DP)

    题意很简单,n头牛,m个位置,每头牛有各自喜欢的位置,问安排这n头牛使得每头牛都在各自喜欢的位置有几种安排方法. 2000MS代码: #include <cstdio> #include ...