@Value("#{}")

@Value("#{}")表示SpEl表达式,通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量

@RestController
@RequestMapping("/login")
@Component
public class LoginController {  @Value("#{1}")  private int number; //获取数字 1  @Value("#{'Spring Expression Language'}") //获取字符串常量  private String str;  @Value("#{dataSource.url}") //获取bean的属性  private String jdbcUrl;  @Autowired  private DataSourceTransactionManager transactionManager;  @RequestMapping("login")  public String login(String name,String password) throws FileNotFoundException{ System.out.println(number);  System.out.println(str);  System.out.println(jdbcUrl);  return "login";  }
}

@Value("${}")

通过@Value("${}")可以获取对应属性文件中定义的属性值。假如有一个application.properties文件 里面规定了一组值: web.view.prefix =/WEB-INF/views/。在controller文件中通过下面代码即可获取这个配置:

    @Value("${web.view.prefix}") private String prefix;


SpEL表达式语言是一种表达式语言,是一种可以与一个基于spring的应用程序中的运行时对象交互的东西。有点类似于ognl表达式。

总得来说SpEL表达式是一种简化开发的表达式,通过使用表达式来简化开发,减少一些逻辑、配置的编写。

@Value(“#{}“) 与 @Value(“${}“) 的区别相关推荐

  1. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  2. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  3. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  4. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  5. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  6. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  7. python二进制打开(rb)和文本格式打开(r)什么区别?

    使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...

  8. python中__dict__与dir()区别

    前言 Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: _ ...

  9. java和C#面向对象的区别

    问题:C#中的构造函数和java的构造函数一样吗? 答: .net的项目中,写实体Entity属性时,经常会为每一个属性写一对get和set方法,在用到这个实体或是一个类时,通过new实例化一个对象, ...

  10. 判别模型和生成模型的区别

    20210703 https://www.zhihu.com/question/20446337 机器学习"判定模型"和"生成模型"有什么区别? 重点 http ...

最新文章

  1. 成长必经的低谷已经来了么?
  2. 解决JQuery.Treeview在CI中无法加载查询函数的方法
  3. 用标准 GHOST镜像xpe系统(EWF保护模式为RAM)时,写保护丢失问题的解决方法
  4. 【数据结构与算法】之深入解析“解码方法”的求解思路与算法示例
  5. EOJ_1081_朋友圈
  6. facebook 图像比赛_使用Facebook的Detectron进行图像标签
  7. armv8 汇编 绝对地址赋值_详解汇编语言B和LDR指令与相对跳转和绝对跳转的关系...
  8. JAVA显示子类num值_JavaSE8基础 子类中的成员变量与父类重名 简单示例
  9. ASP.NET学习顺序(转摘)
  10. 安卓10未知来源_华为已将“基于安卓10”变成“兼容安卓10”,EMUI就是鸿蒙OS
  11. 使用MarkDown,编写html格式的项目帮助手册(含左侧目录树)
  12. 用数据来看马拉多纳究竟有多么闪耀!!!
  13. 云计算演义(2)企业IT之王IBM互联网之王Google数据库之王Oracle狂奔在与关闭公有云赛跑的路上(上)
  14. 大家敏捷,才是真的敏捷——记敏捷培训
  15. 【css】渐变-背景渐变、边框渐变、文字渐变
  16. 聊聊如何在华为云IoT平台进行产品开发
  17. Poco C++库简介
  18. 【知识图谱】构建射雕三部曲人物关系
  19. 互联网时代颠覆的传统行业
  20. 方便他人快速给你发邮件简单代码实现 QQ邮箱一键邮我组件让你体验什么是快?

热门文章

  1. Python 基础torch.stack(tensors: Union[Tuple[Tensor, ...], List[Tensor]], dim: _int=0, *, out: Option)
  2. 用python和flask框架写MongoDB数据库网页(通院大三软件设计)运营商信息管理系统(1)环境配置
  3. 个人理财太平亿康学生怎样才能做好投资理财工作
  4. 第六章: Cassandra架构--Cassandra:The Definitive Guide 2nd Edition
  5. 计算机图形学实验一(二维图形绘制)
  6. LAMP和LNMP架构(介绍)
  7. Python 批量查询URL百度权重
  8. Day69(贪心算法)
  9. STM32MP157高性能微处理器产品介绍
  10. 今天你对我爱搭不理,明天我让你高攀不起