Spring中@Value注解的使用方法详解

 更新时间:2024年01月04日 10:08:23   作者:时间不会赖着不走  
这篇文章主要介绍了Spring中@Value注解的使用方法详解,在spring项目中必不可少的就是读取配置文件,那么读取配置文件就有两种方式,一种就是使用Spring中@Value注解,还有一种是使用SpringBoot中的@ConfigurationProperties注解,需要的朋友可以参考下

Spring中的@Value注解

在spring项目中必不可少的就是读取配置文件,那么读取配置文件就有两种方式。一种就是使用Spring中@Value注解,还有一种是使用SpringBoot中的@ConfigurationProperties注解,本篇文章主要是介绍常用的第一种方式

@Value 注解有两种方式,@Value(“${}”)和@Value(“#{}”)两种方式

第一种 @Value(“${}”)是用来获取配置文件 第二种@Value(“#{}”)是用来表示 SpEl 表达式通常用来获取 bean 的属性,或者调用 bean 的某个方法。

$号用法

获取application.yml文件中port

先说配置文件中属性的注入

server:
 port: 8129

测试代码如下

    @Value("${server.port}")
    private String port;

    @Test
    public  void  getPort(){
        System.out.println("############"+port+"############");
    }

测试结果如下

在这里插入图片描述

$号用法

测试获取自定义的配置文件中的属性

先配置自定义配置文件

1,在application.yml文件中加上这一句

在这里插入图片描述

2,然后编写application-config.yml配置文件,加上测试属性中多个值的情况

在这里插入图片描述

测试代码如下

    // 测试自定义的配置文件
    @Value("${user.password}")
    private String password;

    @Test
    public  void  getPassword(){

        System.out.println(password);
    }
    
    //测试配置多个值
    @Value("${users}")
    private String[] toolArray;

    @Value("${users}")
    private List<String> toolList;
    @Test
    public  void  getTools(){
        System.out.println(toolArray);
        // 反射得到其类型
        String typeName = toolList.getClass().getTypeName();
        System.out.println(typeName);
        System.out.println(toolList);
    }

测试结果如下:

测试自定义配置文件中的属性结果:

在这里插入图片描述

测试数组类型结果:

在这里插入图片描述

不加#号或者$号的注入

用途暂未知

代码如下:

   @Value("hello")
    private String value;
    @Test
    public void getValue(){
        System.out.println(value);
    }

测试结果如下

在这里插入图片描述

#号的用法

注入其他Bean中的属性

先创建一个Bean并且注入到spring容器中

@Component("myBeans")
public class other {
    @Value("hello")
    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

测试方法如下:

  // 注入其他Bean的属性
    @Value("#{myBeans.name}")
    private String fromAnotherBean;

    @Test
    public  void  getFromAnotherBean(){

        System.out.println(fromAnotherBean);
    }

结果如下:

在这里插入图片描述

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

相关文章

  • Mybatis3中方法返回生成的主键:XML,@SelectKey,@Options详解

    Mybatis3中方法返回生成的主键:XML,@SelectKey,@Options详解

    这篇文章主要介绍了Mybatis3中方法返回生成的主键:XML,@SelectKey,@Options,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 解决spring cloud zuul与nginx的域名转发问题

    解决spring cloud zuul与nginx的域名转发问题

    这篇文章主要介绍了spring cloud zuul与nginx的域名转发问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java泛型与注解全面分析讲解

    Java泛型与注解全面分析讲解

    Java 泛型(generics)是 Jdk 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。Annotation(注解)是JDK1.5及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。需要的可以参考一下
    2022-08-08
  • java实现输出任意整数的每一位

    java实现输出任意整数的每一位

    这篇文章主要介绍了java实现输出任意整数的每一位,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringBoot实现文件下载功能的方式分享

    SpringBoot实现文件下载功能的方式分享

    这篇文章主要为大家详细介绍了SpringBoot这哪个实现文件下载功能的几种方式,文中的实现方法简介易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • SpringBoot结合mockito测试实战

    SpringBoot结合mockito测试实战

    与集成测试将系统作为一个整体测试不同,单元测试更应该专注于某个类。所以当被测试类与外部类有依赖的时候,尤其是与数据库相关的这种费时且有状态的类,很难做单元测试。但好在可以通过“Mockito”这种仿真框架来模拟这些比较费时的类,从而专注于测试某个类内部的逻辑
    2022-11-11
  • java开发flyway的方法

    java开发flyway的方法

    这篇文章主要介绍了java开发flyway的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 详解Jmeter线程组的设置方法

    详解Jmeter线程组的设置方法

    本文主要介绍了Jmeter线程组的设置方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Spring Boot + Jpa(Hibernate) 架构基本配置详解

    Spring Boot + Jpa(Hibernate) 架构基本配置详解

    本篇文章主要介绍了Spring Boot + Jpa(Hibernate) 架构基本配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 解决MyEclipse6.5无法启动,一直停留刚开始启动界面的详解

    解决MyEclipse6.5无法启动,一直停留刚开始启动界面的详解

    本篇文章是对解决MyEclipse6.5无法启动,一直停留刚开始启动界面的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论