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


    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();
    	}
    	
    }
    

      

  • 相关阅读:
    学号20145332 《信息安全系统设计基础》实验二 固件设计
    第九周学习总结
    学号20145332 《信息安全系统设计基础》期中总结
    学号20145332 《信息安全系统设计基础》实验一 开发环境的熟悉
    第七周学习总结
    第六周学习总结
    第五周学习总结
    第三周学习总结
    第二周学习总结
    第一周学习总结
  • 原文地址:https://www.cnblogs.com/achengmu/p/8136230.html
Copyright © 2020-2023  润新知