@Value和@PropertySource给类中的属性赋值:
使用@Value给属性赋值:
- 1、基本数值
- 2、可以写SpEL; #{}
- 3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)
@PropertySource用于配置类,读取配置文件信息:
@PropertySource(value={"classpath:/book.properties", "classpath:/person.properties"}),可同时读取多个配置文件
测试代码:
实体类:
public class Book {
@Value("${name}") //读取配置文件中的值
private String name ;
@Value("#{2.4+3}") //SpEL表达式
private double price;
@Value("ZSM") //基本值
private String writer;
}
配置类:
@Configuration
@PropertySource(value={"classpath:/book.properties"})
public class ValueConfig {
@Bean
public Book book(){
return new Book();
}
}
配置文件:book.properties
name=mybook
测试:
@Test
public void test3(){
AnnotationConfigApplicationContext application = new AnnotationConfigApplicationContext(ValueConfig.class);
Object book = application.getBean("book");
System.out.println(book.toString());
}
输出结果:
注意:SpringBoot中提供了更加方便的注解替换@Value注解——@ConfigurationProperties。使用@ConfigurationProperties的前提是,该注解标注的类中属性名与读取的配置文件中的key值相同,才能进行匹配。