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();
}
}
}
配置类
网友评论