您的位置:首页 > 编程语言 > Java开发

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

2017-12-28 16:09 477 查看
Spring Aware的目的是为了让Bean获得Spring容器的服务

//获取容器中的bean名称
import org.springframework.beans.factory.BeanNameAware;
//获得资源加载器,可以获得额外的资源
import org.springframework.context.ResourceLoaderAware;

package ch2.aware;
import java.io.IOException;

import org.apache.commons.io.IOUtils;
//获取容器中的bean名称
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;

//AwareService是spring的一个组件
@Service
//实现BeanNameAware,ResourceLoaderAware资源的接口,获得名称和资源加载的服务
public class AwareService implements BeanNameAware,ResourceLoaderAware {

private String beanName;
private ResourceLoader loader;

//实现ResourceLoaderAware需要重写setResourceLoader
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
// TODO Auto-generated method stub
this.loader = resourceLoader;

}

//实现BeanNameAware需要重写setBeanName
@Override
public void setBeanName(String name) {
// TODO Auto-generated method stub
this.beanName = name;
}

public void outputResult()
{
System.out.println("bean的名字为:"+ beanName);

Resource resource = loader.getResource("classpath:ch2/aware/test.txt");

try {
System.out.println("ResourceLoader加载的内容为:" + IOUtils.toString(resource.getInputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


 配置:

package ch2.aware;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

//声明本类是一个配置类
@Configuration
//自动加载ch2.aware包下面的内容
@ComponentScan("ch2.aware")
public class AwareConfig {

}


  运行:

package ch2.aware;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

public static void main(String[] args)
{

AnnotationConfigApplicationContext context= new AnnotationConfigApplicationContext(AwareConfig.class);
AwareService awareService  = context.getBean(AwareService.class);
awareService.outputResult();
context.close();
}

}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐