首页 > 解决方案 > Java/SpringBoot 中的标签 (#) 是什么?

问题描述

这个问题很可能以前被问过。但我找不到它,因为在 Google 中搜索真正的主题标签似乎很困难。我想它不被称为标签,这是我的英语失败的相对罕见的时刻之一(第二语言)。

因此,尽管这是重复的,但我还是主张将其保留在网站上,以便更容易通过 Google(以及 SO 网站本身!)进行搜索。

我有以下代码。

@GetMapping("/users")
@Timed
@PreAuthorize("hasAuthority('ADMINISTRATOR') or #oauth2.hasScope('some-user-list')")
public ResponseEntity<List<UserDTO>> getAllUsers(@ApiParam Pageable pageable) {
    final Page<UserDTO> page = userService.getAllUsers(pageable);
    HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/users");
    return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}

这是什么#意思(特别是#oauth2,我知道身份验证是什么以及 oauth 做什么,我只是不理解#Spring 中的一个概念)?怎么称呼?这似乎与 Java 语言本身无关,那么 Spring Boot 是如何称呼这个概念的呢?

标签: javaspring-mvcspring-boot

解决方案


它是Spring 表达式语言(Spring EL) 的一部分。

它允许您编写动态表达式、条件和其他不可能(或至少非常笨拙)的东西。

类似的表达式语言存在于其他框架(例如 JSF EL)中,它们的语法通常看起来非常相似。


推荐阅读