zoukankan      html  css  js  c++  java
  • spring boot: EL和资源 (一般注入说明(二) @Service注解 @Component注解)

    @Service用于标注业务层组件 : 将当前类注册为spring的Bean

    @Controller用于标注控制层组件(如struts中的action)

    @Repository用于标注数据访问组件,即DAO组件

    @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。: 将当前类注册为spring的Bean

    实例:

    DemoService :文件:
    package ch2.el;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Service;
    
    //注入:当前类是spring管理的一个bean
    //等效(可根据需要选择):@Service=@Component=@Repository=@Controller
    @Service
    public class DemoService {
    
    	//注入普通字符串
    	@Value("其他类的属性")
    	private String another;
    	
    	public String getAnother()
    	{
    		return another;
    	}
    	
    	public void setAnother(String another)
    	{
    		this.another = another;
    	}
    }
    

      

    test.txt文件:

    wwwweeebbfddfd
    

      

    test.propeties文件:

    book.author=wangyunfei
    book.name=spring boot
    

      

    ResourceConfig文件:

    package ch2.el;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    //声明当前类是一个配置类
    @Configuration
    //自动扫描ch2.el包下的所有@Service,@Component,@Repository和@Controller注册为Bean;
    @ComponentScan("ch2.el")
    public class ResourceConfig {
    
    }
    

      

    Eiconfig文件:

    package ch2.el;
    import org.apache.commons.io.IOUtils;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
    import org.springframework.core.env.Environment;
    import org.springframework.core.io.Resource;
    
    
    //声明当前类是一个配置类
    @Configuration
    //自动扫描包下的所有@Service,@Component,@Repository和@Controller注册为Bean;
    @ComponentScan("ch2.el")
    //注入配置文件
    @PropertySource("classpath:ch2/el/test.propeties")
    public class ElConfig {
    
    	
    	//将FunctionService类的实体Bean注入到UseFunctionService中,让UseFunctionService拥有FunctionService的功能
    	//等效注解: @Autowire=@Inject=@Resource
    	
    	//注入文字
    	@Value("I love you")
    	private String normal;
    	
    	//注入操作系统属性
    	@Value("#{systemProperties['os.name']}")
    	private String osName;
    	
    	
    	//注入表达式结果
    	@Value("#{ T(java.lang.Math).random() * 100.0 }")
    	private double randomNumber;
    	
    	
    	//注入其他Bean属性
    	@Value("#{demoService.another}")
    	private String fromAnother;
    	
    	//注入文件资源
    	@Value("classpath:ch2/el/test.txt")
    	private Resource testFile;
    	
    	//注入网址资源
    	@Value("http://www.baidu.com")
    	private Resource testUrl;
    	
    	
    	//注入配置文件
    	@Value("${book.name}")
    	private String bookName;
    	
    	//注入配置文件
    	@Autowired
    	private Environment environment;
    	
    	//注入配置文件
    	@Bean
    	public static PropertySourcesPlaceholderConfigurer propertyConfigure()
    	{
    		return new PropertySourcesPlaceholderConfigurer();
    	}
    	
    	public void outputResource()
    	{
    		
    		
    		
    		try {
    			System.out.println(normal);
    			System.out.println(osName);
    			System.out.println(randomNumber);
    			System.out.println(fromAnother);
    			System.out.println(testFile);
    			System.out.println(testUrl);			
    			
    			System.out.println(IOUtils.toString(testUrl.getInputStream()));
    			System.out.println(bookName);
    			System.out.println(environment.getProperty("book.author"));
    			
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    }
    

      

    Main文件:

    package ch2.el;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class Main {
    
    	
    	public static void main(String[] args)
    	{
    		
    		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ResourceConfig.class);
    		ElConfig resourceElconfig = context.getBean(ElConfig.class);
    		
    		resourceElconfig.outputResource();
    		context.close();
    		
    	}
    }
    

      

  • 相关阅读:
    绘图QPainter-画刷
    绘图QPainter-画笔
    pyqt5-多线程QThread类
    升级时出现错误的解决办法
    打包pyinstaller
    多文档界面QMdiArea
    停靠窗口QDockWidget
    堆叠窗口QStackedWidget
    VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
    【一】ODB
  • 原文地址:https://www.cnblogs.com/achengmu/p/8117234.html
Copyright © 2011-2022 走看看