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中,供后期代码使用。