• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Spring@Value注解

武飞扬头像
时间不会赖着不走
帮助1

@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);
    }

结果如下:
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgakeeh
系列文章
更多 icon
同类精品
更多 icon
继续加载