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;
? ?//注入系統(tǒng)屬性
? ?@Value("#{systemProperties['os.name']}")
? ?private String osName;
? ?//注入表達(dá)式結(jié)果
? ?@Value("#{ T(java.lang.Math).random()}")
? ?private double randomNumber;
? ?//注入其他bean屬性
? ?@Value("#{demoService.another}")
? ?private String fromAnother;
? ?//注入文件資源
? ?@Value("classpath:test2.txt")
? ?private Resource testFile;
? ?//注入網(wǎng)址資源
? ?@Value("http://www.baidu.com")
? ?private Resource testUrl;
? ?//指定Properties文件注入并注入值
? ?@Value("${book.name}")
? ?private String bookName;
? ?//PropertySource注入需要指定
? ?@Autowired
? ?private Environment environment;
? ?//PropertySource注入需要實現(xiàn)
? ?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.多種配置注入,包括了注入普通字符串背苦,注入系統(tǒng)屬性互捌,注入表達(dá)式結(jié)果,注入其他bean屬性行剂,注入文件資源秕噪,注入網(wǎng)址資源,指定Properties文件注入并注入值厚宰,PropertySource注入需要指定腌巾,PropertySource注入需要實現(xiàn)遂填。
2. 根據(jù)需求,可將應(yīng)用配置配置到txt文件中澈蝙,再已注入的方式注入到Service中吓坚,供后期代碼使用。