@Value注解具有什么功能呢?
下文笔者讲述@Value注解的功能简介说明,如下所示
@Value注解的功能简介说明
@Value注解的功能: 不使用配置文件 然后进行注入属性 @Value注入的场景: 注入普通字符串 注入操作系统属性 注入表达式结果 注入其他Bean属性 注入beanInject对象的属性another 注入文件资源 注入URL资源
@Value代码示例
@Value("normal") private String normal; // 注入普通字符串 @Value("#{systemProperties['os.name']}") private String systemPropertiesName; // 注入操作系统属性 @Value("#{ T(java.lang.Math).random() * 100.0 }") private double randomNumber; //注入表达式结果 @Value("#{beanInject.another}") private String fromAnotherBean; // 注入其他Bean属性:注入beanInject对象的属性another,类具体定义见下面 @Value("classpath:com/java265/spring/configinject/config.txt") private Resource resourceFile; // 注入文件资源 @Value("http://www.baidu.com") private Resource testUrl; // 注入URL资源例2:使用配置文件注入属性
config.properties
book.name=java265 anotherfile.configinject=placeholder第二个属性文件config_placeholder.properties
book.name.placeholder=bookNamePlaceholder
@Component // 引入外部配置文件组:${app.configinject}的值来自config.properties。 // 如果相同 @PropertySource({"classpath:com/java265/spring/configinject/config.properties", "classpath:com/java265/spring/configinject/config_${anotherfile.configinject}.properties"}) public class ConfigurationFileInject{ @Value("${app.name}") private String appName; // 这里的值来自application.properties,spring boot启动时默认加载此文件 @Value("${book.name}") private String bookName; // 注入第一个配置外部文件属性 @Value("${book.name.placeholder}") private String bookNamePlaceholder; // 注入第二个配置外部文件属性 @Autowired private Environment env; // 注入环境变量对象,存储注入的属性值 public String toString(){ StringBuilder sb = new StringBuilder(); sb.append("bookName=").append(bookName).append("\r\n") .append("bookNamePlaceholder=").append(bookNamePlaceholder).append("\r\n") .append("appName=").append(appName).append("\r\n") .append("env=").append(env).append("\r\n") // 从eniroment中获取属性值 .append("env=").append(env.getProperty("book.name.placeholder")).append("\r\n"); return sb.toString(); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。