@Value 注解是Spring框架中用于注入配置值的一个注解。它的作用是将配置文件中的值注入到Spring管理的Bean的字段中。具体来说,@Value 注解可以用来注入以下类型的值:
- 字符串值:直接在注解中指定的字符串,例如
@Value("someValue")
。 - 外部配置文件中的值:可以从properties文件、YAML文件或环境变量中注入值,例如
@Value("${some.property}")
。 - 表达式:可以执行简单的Spring表达式语言(SpEL)表达式,例如
@Value("#{someBean.someMethod()}")
。
如下述代码
@Value 注解被用来从外部配置源(可能是application.properties或application.yml文件)中注入appId
和appSecret
的值到WxAppletsConfig
类的静态字段中。这种方式使得配置值可以被集中管理,并且可以在不同的环境(如开发、测试和生产环境)中使用不同的配置值,而无需修改代码。
package com.spring.autosales.config;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class WxAppletsConfig {public static String weixin_access_token;private static String appId;private static String appSecret;public static String getAppId() {return appId;}@Value("${custom.wx_applets.appId}")public void setAppId(String appId) {WxAppletsConfig.appId = appId;}public static String getAppSecret() {return appSecret;}@Value("${custom.wx_applets.appSecret}")public void setAppSecret(String appSecret) {WxAppletsConfig.appSecret = appSecret;}}
application.yml 配置文件
custom:wx_applets:appId: wx05f12ddf5276579cappSecret: 7fe47f9bffc2b5efde586f1c9e465b0f