“@Value 是如何工作的”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
(未显示同一用户的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,如果找到则进行属性注入,没找到则报错。