spring @Value注解的使用


@Value注解谁都用过,但还是有点细节的。

注入配置文件里面的属性

@value("${name}")
private String name;

使用冒号可以设置默认值,当属性不存在时使用默认值:

@value("${name:zhangsan}")
private String name;

直接注入字符串

@value("zhangsan")
private String name;

注入数组

配置文件:

user.types=1,3,5

java代码为:

@Value("${user.types}")
private String[] types;

数组中可以设置默认值吗?当然可以。
注:冒号后面直接写1,2,3即可,不用加中括号。

@Value("${user.types:1,4,5,7,9,13}")
private String[] type;

使用SpEl表达式注入

SpEl表达式支持加减乘除,这里只举一例:

@Value("#{5*2}")
private Double number; 

注入操作系统属性

@Value("#{systemProperties['os.name']}")
private String osName; // 例如: Windows 7

注入容器中对象的属性

@Component
@Data
public class Student {
    
    
    @Value("yangyanzhao")
    private String name;
}
 
// =========== 另一个类中这么写
@Value("#{student.name}")
private String studentName;

基于对象注入

注入文件

@Value("classpath:aaa.txt")
private Resource file;  

注入网址内容

@Value("http://www.baidu.com")
private Resource baidu; 

猜你喜欢

转载自blog.csdn.net/enthan809882/article/details/113372935