提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
springboot @Value 使用场景。
提示:以下是本篇文章正文内容,下面案例可供参考
一、@Value("${name}")
示例:@Value("$name") 读取配置文件properties、jvm、环境变量里定义的属性
learning.properties中定义属性
name=zhangsan
@Component
@PropertySource("classpath:learning.properties")
public class TestService {
@Value("${name}")
private String name;
public void test() {
System.out.println(name);
//====>zhangsan
}
}
二、@Value(“zhangsan”)
示例:@Value(“zhangsan”) 直接赋值普通字符串给name属性
@Component
@PropertySource("classpath:learning.properties")
public class TestService {
@Value("zhangsan")
private String name;
public void test() {
System.out.println(name);
//====>zhangsan
}
}
三、@Value("${name}")结合注解,统一配置
示例:
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Value("${name}")
public @interface NameAnnotation {
}
@Component
@PropertySource("classpath:learning.properties")
public class TestService {
// @Value("${name}")
// private String name;
// @Value("zhangsan")
// private String name;
@NameAnnotation
private String name;
public void test() {
System.out.println(name);
//====>zhangsan
}
}
总结
@Value("${name}") 读取配置文件properties、jvm、环境变量里定义的属性
@Value(“zhangsan”) 直接赋值普通字符串给name属性
@Value("${name}")注解,统一配置,方便统一修改某个属性