“@Value 是如何工作的”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
(未显示同一用户的1个中间版本) | |||
第1行: | 第1行: | ||
@Value 注解和 @Resource、@Autowired 类似,也是用来对属性进行依赖注入的, | @Value 注解和 @Resource、@Autowired 类似,也是用来对属性进行依赖注入的, | ||
− | 只不过 @Value 是用来从 Properties 文件中来获取值的,并且 @Value 可以解析 SpEL(Spring Expression,Spring | + | 只不过 @Value 是用来从 Properties 文件中来获取值的,并且 @Value 可以解析 SpEL(Spring Expression,Spring 表达式)。 |
+ | |||
+ | === @Value(“zhangsan”) === | ||
+ | 直接将字符串“zhangsan”赋值给属性,如果属性类型不是 String,或无法进行类型转化,则报错。 | ||
+ | |||
+ | === @Value("${zhangsan}") === | ||
+ | 将会把 ${} 中的字符串当做 key,从 Properties 文件中找出对应的 value 赋值给属性; | ||
+ | |||
+ | 如果没找到,则会把“${zhangsan}”当做普通字符串注入给属性。 | ||
+ | |||
+ | === @Value("#{zhangsan}") === | ||
+ | 会将 #{} 中的字符串当做 Spring 表达式进行解析,Spring 会把“zhangsan”当做 beanName, | ||
+ | |||
+ | 并从 Spring 容器中找对应 bean,如果找到则进行属性注入,没找到则报错。 |
2024年7月21日 (日) 04:13的最新版本
@Value 注解和 @Resource、@Autowired 类似,也是用来对属性进行依赖注入的,
只不过 @Value 是用来从 Properties 文件中来获取值的,并且 @Value 可以解析 SpEL(Spring Expression,Spring 表达式)。
@Value(“zhangsan”)
直接将字符串“zhangsan”赋值给属性,如果属性类型不是 String,或无法进行类型转化,则报错。
@Value("${zhangsan}")
将会把 ${} 中的字符串当做 key,从 Properties 文件中找出对应的 value 赋值给属性;
如果没找到,则会把“${zhangsan}”当做普通字符串注入给属性。
@Value("#{zhangsan}")
会将 #{} 中的字符串当做 Spring 表达式进行解析,Spring 会把“zhangsan”当做 beanName,
并从 Spring 容器中找对应 bean,如果找到则进行属性注入,没找到则报错。