@Value 是如何工作的

来自姬鸿昌的知识库
跳到导航 跳到搜索

@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,如果找到则进行属性注入,没找到则报错。