@Value(“#{}“) 与 @Value(“${}“) 的区别
@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(“${}“) 的区别相关推荐
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...
- C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别
最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...
- Python2 与 Python3 区别
Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...
- Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别
Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...
- HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)
TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...
- python二进制打开(rb)和文本格式打开(r)什么区别?
使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...
- python中__dict__与dir()区别
前言 Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: _ ...
- java和C#面向对象的区别
问题:C#中的构造函数和java的构造函数一样吗? 答: .net的项目中,写实体Entity属性时,经常会为每一个属性写一对get和set方法,在用到这个实体或是一个类时,通过new实例化一个对象, ...
- 判别模型和生成模型的区别
20210703 https://www.zhihu.com/question/20446337 机器学习"判定模型"和"生成模型"有什么区别? 重点 http ...
最新文章
- 成长必经的低谷已经来了么?
- 解决JQuery.Treeview在CI中无法加载查询函数的方法
- 用标准 GHOST镜像xpe系统(EWF保护模式为RAM)时,写保护丢失问题的解决方法
- 【数据结构与算法】之深入解析“解码方法”的求解思路与算法示例
- EOJ_1081_朋友圈
- facebook 图像比赛_使用Facebook的Detectron进行图像标签
- armv8 汇编 绝对地址赋值_详解汇编语言B和LDR指令与相对跳转和绝对跳转的关系...
- JAVA显示子类num值_JavaSE8基础 子类中的成员变量与父类重名 简单示例
- ASP.NET学习顺序(转摘)
- 安卓10未知来源_华为已将“基于安卓10”变成“兼容安卓10”,EMUI就是鸿蒙OS
- 使用MarkDown,编写html格式的项目帮助手册(含左侧目录树)
- 用数据来看马拉多纳究竟有多么闪耀!!!
- 云计算演义(2)企业IT之王IBM互联网之王Google数据库之王Oracle狂奔在与关闭公有云赛跑的路上(上)
- 大家敏捷,才是真的敏捷——记敏捷培训
- 【css】渐变-背景渐变、边框渐变、文字渐变
- 聊聊如何在华为云IoT平台进行产品开发
- Poco C++库简介
- 【知识图谱】构建射雕三部曲人物关系
- 互联网时代颠覆的传统行业
- 方便他人快速给你发邮件简单代码实现 QQ邮箱一键邮我组件让你体验什么是快?
热门文章
- Python 基础torch.stack(tensors: Union[Tuple[Tensor, ...], List[Tensor]], dim: _int=0, *, out: Option)
- 用python和flask框架写MongoDB数据库网页(通院大三软件设计)运营商信息管理系统(1)环境配置
- 个人理财太平亿康学生怎样才能做好投资理财工作
- 第六章: Cassandra架构--Cassandra:The Definitive Guide 2nd Edition
- 计算机图形学实验一(二维图形绘制)
- LAMP和LNMP架构(介绍)
- Python 批量查询URL百度权重
- Day69(贪心算法)
- STM32MP157高性能微处理器产品介绍
- 今天你对我爱搭不理,明天我让你高攀不起