Spring高级应用 之Aware类

1.Aware类为Bean感知Spring容器的存在提供支持,实现Aware类便可利用利用Spring容器中的各种资源;

2.常用的Aware类有哪些?

BeanNameAware:可以获得容器中BeanName

BeanFactoryAware:可以获取当前的BeanFactory

ApplicationContextAware:可以获取applicationContext,得到当前的容器服务;

MessageSourceAware:可以获取文本信息;

3.示例工程

import java.io.IOException;

import java.io.InputStream;

import org.apache.commons.io.IOUtils;

import org.springframework.beans.factory.BeanNameAware;

import org.springframework.context.ResourceLoaderAware;

import org.springframework.core.io.Resource;

import org.springframework.core.io.ResourceLoader;

import org.springframework.stereotype.Service;

@Service

public class TangoBeanNameAware implements BeanNameAware,ResourceLoaderAware{

private ResourceLoader resourceloader;

private String beanName;

@Override

public void setResourceLoader(ResourceLoader loader) {

this.resourceloader=loader;

}

@Override

public void setBeanName(String beanName) {

this.beanName=beanName;

}

public void outPut() {

System.out.println("BeanName为"+beanName);

Resource resource = resourceloader.getResource("classpath:com/tango/spring/aware/tango.txt");

try {

InputStream in = resource.getInputStream();

System.out.println("文本中的内容为:"+IOUtils.toString(in));

} catch (IOException e) {

e.printStackTrace();

}

}

}

配置类

你可能感兴趣的:(Spring高级应用 之Aware类)