SpringBoot中使用@Value注解注入详解

 更新时间:2023年08月04日 10:22:33   作者:小魏的博客  
这篇文章主要介绍了SpringBoot中的@Value注入详解,在SpringBoot中,@Value注解可以注入一些字段的普通属性,并且会自动进行类型转换,本文对这些类型进行总结,需要的朋友可以参考下

介绍

我们可以通过@Value将外部的值动态注入到Bean中。

@Value注解可以注入一些字段的普通属性,并且会自动进行类型转换

普通字符串注入

例:yml中存在key:name: zs

@Value注入

@Value("${name}")
public String name;

当yml中的name没有对应值时,即yml中为:name:

此时字符串name的值为""

可设置注入属性的默认值(当配置文件中没有此key时,此默认值生效),语法:

@Value("${name:zch}")
public String name;// 此时,若配置文件中没有name这个key,变量name的值为zch

常用的int、boolean类型

例:yml中存在key:

port: 8888
flag: true

@Value注入

@Value("${port}")
public int port;
@Value("${flag}")
public boolean flag;

数组类型注入

例:yml中存在key:id: 1,2,3

@Value注入:

@Value("${id}")
public int[] idArray;

list类型

例:yml中存在key:id: 1,2,3

@Value注入:

@Value("#{'${id}'.split(',')}")
public List<String> idList;

map类型

例:yml中存在key:

user: "{name: 'zs',age: '23'}" #注意此值用双引号包裹

@Value注入

@Value("#{${user}}")
public Map<String,String> userInfo;

当yml中user没有对应值是,启动报错

操作系统相关

@Value("#{systemProperties['os.name']}")
private String systemPropertiesName; // 注入操作系统属性

其它bean属性

@Value("#{beanInject.another}")
private String fromAnotherBean; // 注入其他Bean属性:注入beanInject对象的属性another,类具体定义见下面

文件资源注入

    @Value("classpath:data/service/sbusiness.json")
	private Resource sbusinessJson;
	@Value("classpath:data/service/sbusinessDesc.txt")
	private Resource sbusinessDesc;
	@Value("classpath:data/service/alarmDesc.txt")
	private Resource alarmDesc; 

到此这篇关于SpringBoot中使用@Value注解注入详解的文章就介绍到这了,更多相关SpringBoot中的@Value内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 详解包装类Integer与int有哪些共通和不同

    Java 详解包装类Integer与int有哪些共通和不同

    这篇文章主要介绍的是 Java中int和Integer的区别,Java 是一种强数据类型的语言,因此所有的属性必须有一个数据类型,下面文章基于Java详细int和Integer有何区别,需要的朋友可以参考一下
    2022-04-04
  • RocketMQ消息丢失的场景以及解决方案

    RocketMQ消息丢失的场景以及解决方案

    Apache RocketMQ是企业级的消息中间件,以其高性能和高可靠性而广泛应用,但是,消息丢失的问题在实践中仍然存在,本文将探讨此问题并提供解决方案,需要的朋友可以参考下
    2023-11-11
  • springboot集成mybatisPlus+多数据源的实现示例

    springboot集成mybatisPlus+多数据源的实现示例

    这篇文章主要介绍了springboot集成mybatisPlus+多数据源的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Spring之动态注册bean的实现方法

    Spring之动态注册bean的实现方法

    这篇文章主要介绍了Spring之动态注册bean的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 面试官:Java中new Object()到底占用几个字节

    面试官:Java中new Object()到底占用几个字节

    这篇文章主要介绍了面试官:Java中new Object()到底占用几个字节,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 浅谈java 执行jar包中的main方法

    浅谈java 执行jar包中的main方法

    下面小编就为大家带来一篇浅谈java 执行jar包中的main方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Java多线程并发的指令重排序问题及volatile写屏障原理详解

    Java多线程并发的指令重排序问题及volatile写屏障原理详解

    这篇文章主要介绍了Java多线程并发的指令重排序问题及volatile写屏障原理详解,指令重排序是编译器或处理器为了提高性能而对指令执行顺序进行重新排列的优化技术,需要的朋友可以参考下
    2024-01-01
  • Spring@Autowired与@Resource的区别有哪些

    Spring@Autowired与@Resource的区别有哪些

    这篇文章主要为大家详细介绍了@Autowired与@Resource的区别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • IDEA连接mysql数据库报错的解决方法

    IDEA连接mysql数据库报错的解决方法

    这篇文章主要介绍了IDEA连接mysql数据库报错的解决方法,文中有非常详细的图文示例,对出现Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ prope报错的小伙伴们很有帮助哟,需要的朋友可以参考下
    2021-05-05
  • 详解JAVA调用WCF服务的示例代码

    详解JAVA调用WCF服务的示例代码

    这篇文章主要介绍了详解JAVA调用WCF服务的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论