Spring Boot EL获取配置文件中的值的方式

(1)准备

  • 为了方便IO操作,引入了commons-io

     commons-io
     commons-io
     2.6

  • application.yml
book:
  name: 熊猫酒仙_
  • resouces 下新建一个test文件夹,文件夹下一个test.txt文件,文件内容:
  Test

(2)代码

  • OtherService

@Service
public class OtherService {

    @Value("测试其它类的属性")
    private String another;

    public String getAnother() {
        return another;
    }

    public void setAnother(String another) {
        this.another = another;
    }
}
  • ElConfig


@Configuration
public class ElConfig {
    /**
     * 注入普通字符串
     */
    @Value("I Love Java")
    private String normal;
    /**
     * 注入操作系统属性
     */
    @Value("#{systemProperties['os.name']}")
    private String osName;
    /**
     * 注入表达式结果
     */
    @Value("#{T(java.lang.Math).random()*100 }")
    private double random;
    /**
     * 注入其它Bean的属性(其它Bean的属性需要get set 方法,或者 public)
     */
    @Value("#{otherService.another}")
    private String fromAnother;
    /**
     * 注入文件
     */
    @Value("classpath:/test/test.txt")
    private Resource testFile;
    /**
     * 注入网址
     */
    @Value("http://www.baidu.com")
    private Resource testUrl;
    /**
     * 注入配置文件
     */
    @Value("${book.name}")
    private String userName;
    /**
     * 注入配置文件
     */
    @Autowired
    private Environment environment;

    public void getSecret() {
        try {
            System.out.println(normal);
            System.out.println(osName);
            System.out.println(random);
            System.out.println(fromAnother);
            System.out.println(IOUtils.toString(testFile.getInputStream(), "utf-8"));
            System.out.println(IOUtils.toString(testUrl.getInputStream(), "utf-8"));
            System.out.println(userName);
            //注入配置文件
            System.out.println(environment.getProperty("book.name"));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

(3)测试


@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootAopApplicationTests {

    @Resource
    private ElConfig elConfig;

    @Test
    public void elConfigTest() {
        elConfig.getSecret();
    }

}

(4)输出

I Love Java
Windows 10
8.226641172488735
测试其它类的属性
Test

 百度一下,你就知道  

关于百度 About Baidu

©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 

熊猫酒仙_ 熊猫酒仙_

GitHub 源码

你可能感兴趣的:(Spring Boot EL获取配置文件中的值的方式)