package com.example.el; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; /** * Created by liz19 on 2017/1/31. */ @Service public class DemoService { @Value("其他類屬性") private String another; public String getAnother(){ return another; } public void setAnother(String another){ this.another=another; } }
package com.example.el; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; 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; import java.io.IOException; /** * Created by liz19 on 2017/1/31. */ @Configuration @ComponentScan("com.example.el") @PropertySource("classpath:test.properties") public class ElConfig { //注入普通字符串 @Value("Testing String inject") private String normal; //注入系統屬性 @Value("#{systemProperties['os.name']}") private String osName; //注入表達式結果 @Value("#{ T(java.lang.Math).random()}") private double randomNumber; //注入其他bean屬性 @Value("#{demoService.another}") private String fromAnother; //注入文件資源 @Value("classpath:test2.txt") private Resource testFile; //注入網址資源 @Value("http://www.baidu.com") private Resource testUrl; //指定Properties文件注入並注入值 @Value("${book.name}") private String bookName; //PropertySource注入需要指定 @Autowired private Environment environment; //PropertySource注入需要實現 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(IOUtils.toString(testFile.getInputStream())); System.out.println(IOUtils.toString(testUrl.getInputStream())); System.out.println(bookName); System.out.println(environment.getProperty("book.author")); } catch (IOException e) { e.printStackTrace(); } } }
package com.example; import com.example.el.ElConfig; import org.springframework.context.annotation.AnnotationConfigApplicationContext; /** * Created by liz19 on 2017/1/31. */ public class ElApp { public static void main(String[] args){ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ElConfig.class); ElConfig resourceService = context.getBean(ElConfig.class); resourceService.outputResource(); context.close(); } }
##test.properties book.name=spring boot test book.author=test Author
##test2.txt this is test.txt content
1.多種配置注入,包括了注入普通字符串,注入系統屬性,注入表達式結果,注入其他bean屬性,注入文件資源,注入網址資源,指定Properties文件注入並注入值,PropertySource注入需要指定,PropertySource注入需要實現。
2. 根據需求,可將應用配置配置到txt文件中,再已注入的方式注入到Service中,供后期代碼使用。
