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