SpringBoot 2.x学习(三):为属性注入配置文件中的值:@Value 注解的使用

2023-05-16

文章目录

  • 一、@Value 注解的作用
  • 二、使用 @Value 为普通成员变量注入值
    • 1、字面量
      • (1)语法
      • (2)举例
    • 2、Spring 表达式(SpEL)
      • (1)语法
      • (2)举例
    • 3、Spring全局配置文件的 key 值
  • 三、使用 @Value 为静态变量注入值
    • 1、举例
    • 2、注意

一、@Value 注解的作用

使用 @Value 注解,可以为属性注入全局配置文件中的值。

@Value 相当于 Spring 框架配置文件注入值:

<bean class="Demo">
    <property name="lastname" value="字面量/ #{Spring 表达式} / ${key}"/>
</bean>

二、使用 @Value 为普通成员变量注入值

就像 Spring 框架配置文件注入值一样,@Value 也可以使用三种形式注入值。

1、字面量

(1)语法

在需要注入值的属性上加上如下内容:

	@Value("字面量")

(2)举例

@Component
public class Demo {
 	@Value("5000")
    private Double salary;
    
	public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }
}

此时属性salary 的值就为 5000。

2、Spring 表达式(SpEL)

(1)语法

在需要注入值的属性上加上如下内容:

	@Value("#{Spring表达式}")

(2)举例

@Component
public class Demo {
 	@Value("#{10*2}")
    private Integer age;
    
	public Integer getAge() {
        return age;
    }

    public void setAge(Double age) {
        this.age= age;
    }
}

此时属性 age 的值就为 20。

3、Spring全局配置文件的 key 值

application.properties

demo.last-name=lisi

在 @Value 写入 ${key} 即可获取全局配置文件对应的值。

@Component
public class Demo {
	@Value("${demo.last-name}")
    private String lastName;
	
	public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

此时属性 lastName 的值就为 lisi。

三、使用 @Value 为静态变量注入值

1、举例

与普通成员变量不同,如果想要为类的静态变量注入值,则需要将 @Value 注解放在该属性对应的 set 方法上,比如:

application.properties

config=test
@Component
public class Demo {
 	private static String config;
   	
   	@Value("${config}")
    public void setConfig(String config) {
        Demo.config = config;
    }
}

2、注意

  1. 由于静态变量是属于类的,所以不能使用 this使用类名.静态变量名即可为该静态变量注入值。
  2. 静态变量其对应的 set 方法不能是静态的,否则会注入失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot 2.x学习(三):为属性注入配置文件中的值:@Value 注解的使用 的相关文章

随机推荐

  • adb命令 提取已安装的apk

    获取包名 通过 adb shell pm 命令 xff0c 可以打印当前手机安装的所有 apk 的包名 adb shell pm list packages 根据包名查找 APK 对应的路径 所有安装完后的apk xff0c 其实都存在手机
  • python 语言基础 - 你不得不知道的字符串常用函数之isalpha

    前言 小伙伴们大家好 xff0c 每天一个小知识 xff0c 一起学python每天进步一点点 不知道小伙伴们在开发的时候有没有遇到这样一种场景 xff0c 有时候一些业务需要 xff0c 想要判断一个字符串是不是由纯字符组成 xff0c
  • python 语言基础 - 你不得不知道的字符串常用函数之isdigit

    前言 小伙伴们大家好 xff0c 每天一个小知识 xff0c 一起学python每天进步一点点 上一篇文章中为大家分享了关于判断字符串是否全都是由字符组成的函数isalpha xff0c 今天要给大家分享的依然是判断字符串组成的函数isdi
  • uni-app,选择器使用

    1 uni app 选择器使用示例 xff1a let view 61 uni createSelectorQuery in this select 34 grade btn 34 view fields size true scrollO
  • CSRF漏洞修复建议

    1 关于CSRF 跨站请求伪造 xff0c xff08 Cross site request forgery xff09 是一种对网站的恶意利用 CSRF作为一种跨网站的攻击方式 xff0c 不同于XSS站内攻击 CSRF是通过伪装成受信任
  • centos6和centos7的防火墙基本命令

    一 centos6 xff1a 1 firewall的基本启动 停止 重启命令 查看防火墙状态 xff1a service iptables status etc init d iptables status centos6启动 停止防火墙
  • django中vue的使用

    转载 xff1a https blog csdn net qq 21389693 article details 105734696 后端使用vue的目的 后端使用vue的目的就是把ajax里面的数据绑定到前端 xff0c 实现动静分离 V
  • centos7更新yum源

    1 centos7安装后 xff0c 默认yum源配置文件位置 xff1a vi etc yum repos d CentOS Media repo 2 下载新的国内yum源 centos自带的是国外yum源 xff0c 下载速度相当慢 换
  • 临时出差宁波随笔

    因公司吉利项目收尾工作 xff0c 需到客户现场施工 主要负责软件项目的质量查验 xff0c 及相关问题修复 一千多公里的路程 xff0c 坐高铁7小时左右 xff0c 真是体验了中国速度 一路由西北而向东南直下 xff0c 抵达舟山群岛附
  • GitHub Copilot

    介绍 GitHub Copilot 是人工智能编程助手 xff0c 它可以帮助你编写程序 在你用visual studio或visual studio code等软件设计工具进行编程时 xff0c 它可以直接给你整行或整个方法的代码提示 x
  • 微信小程序头像昵称填写功能

    自 2022 年 10 月 25 日 24 时后 xff08 以下统称 生效期 xff09 xff0c 用户头像昵称获取规则将进行如下调整 xff1a 自生效期起 xff0c 小程序 wx getUserProfile 接口将被收回 xff
  • mysql 5.7设置数据库大小写敏感

    1 此处讲的是windows环境下的mysql配置 xff0c 小编用的是win10系统 xff1b 2 安装完mysql后 xff0c 数据库默认是大小写不敏感的 xff1b 3 修改my ini文件 xff1a C ProgramDat
  • eclipse 护眼色设置

    1 调整eclipse editor区域背景色 背景颜色向你推荐 xff1a 色调 xff1a 85 饱和度 xff1a 1 2 3 亮度 xff1a 2 0 5 文档都不再是刺眼的白底黑字 xff0c 而是非常柔和的豆沙绿色 xff0c
  • Js apply方法详解,及其apply()方法的妙用

    Js apply方法详解 我在一开始看到javascript的函数apply和call时 非常的模糊 看也看不懂 最近在网上看到一些文章对apply方法和call的一些示例 总算是看的有点眉目了 在这里我做如下笔记 希望和大家分享 如有什么
  • 如何安装双系统之ubuntu安装

    如何安装双系统之ubuntu安装 1 首先在Windows下对磁盘分出一块空闲分区大概100G左右 2 然后下载Ubuntu16 04镜像 xff0c 制作启动盘 3 重启电脑 xff0c 按住对应的键 xff08 不同电脑型号可能不同 x
  • 场景分类综述——Remote Sensing Image Scene Classification Meets Deep Learning

    一 场景分类面临的挑战 场景分类的挑战包括 xff1a 1 类内多样性大 xff0c 2 类间相似性高 也称为类间可分性低 xff0c 3 对象 场景尺度的差异大 就类内的多样性而言 xff0c 挑战主要来自于在同一个语义类中出现的地物的巨
  • 配置服务器的磁盘阵列并正确分区

    磁盘阵列 xff0c 即独立磁盘冗余阵列RAID xff08 Redundant Array of Independent Disks xff09 xff0c 其实就是一个将多块独立磁盘结合在一起 xff0c 从而提高数据的可靠性和I O性
  • 软件项目组织架构安排

    这个主题涉及到三个方面 xff0c 项目计划管理 组织管理和技术管理范畴 项目计划管理是项目管理中的一个大篇章 xff0c 包括时间计划 成本计划 费用计划等在内的各类计划管理 xff0c 不是本文章所谈的范围 xff0c 只是本文主题涉及
  • SpringBoot2.x学习(二):为属性注入配置文件中的值:@ConfigurationProperties注解的使用

    文章目录 一 64 ConfigurationProperties 简单介绍二 64 ConfigurationProperties 使用示范1 创建两个 javaBean2 在 SpringBoot 全局配置文件写入需要注入的值2 1 a
  • SpringBoot 2.x学习(三):为属性注入配置文件中的值:@Value 注解的使用

    文章目录 一 64 Value 注解的作用二 使用 64 Value 为普通成员变量注入值1 字面量 xff08 1 xff09 语法 xff08 2 xff09 举例 2 Spring 表达式 xff08 SpEL xff09 xff08