【问题标题】:How do you find your way around a Spring codebase?您如何在 Spring 代码库中找到自己的方式?
【发布时间】:2019-10-24 12:10:09
【问题描述】:

我开始了一个后端在 Spring 的职位,但我遇到了麻烦。在 Django、Flask、Rails、Express.js 等中,有一些路由文件,您可以在其中找到服务器已为其配置响应的不同 URL 的声明,并从那里找到您的方法。 Spring 似乎没有那个......到处都是带有注释的文件,这些注释将各种类转换为端点。

您如何找到自己的方式或形成代码库结构的某种心理概念?

【问题讨论】:

  • 你可以在单个文件中声明端点常量
  • 启动 Spring Boot 应用程序时,启动完成并显示消息 Started [application name] in [startup time] seconds ...。就在这条消息之前,有类似Mapped "..." onto ... 的消息,它显示了哪些 URL 已映射到哪些控制器方法。总的来说,这些日志消息具有相同的目的,即有一个集中的路由文件将 URL 映射到控制器。可以使用 IDE 访问 URL 的控制器方法,然后从那里访问其他组件。
  • 您有多种选择。 1) 理想情况下,您有一个包和/或类名的命名约定,其中包含“控制器”一词,2) 启动日志是一个很好的查看位置(debug=true 可以提供帮助),3) 您可以“grep” "@...Mapping` 源代码中的注释。另外:看这里:stackoverflow.com/questions/3686196/… 或这里:stackoverflow.com/questions/32525699/…

标签: spring spring-boot


【解决方案1】:

以下是一些通用提示:

  • Java IDE 很棒,可以广泛使用它们。他们可以在很多情况下提供帮助。 它们都支持 Spring Boot 应用程序。所以你可以打开,比如说,pom.xml 文件,它会加载项目。

  • 所有的 Rest Controller 通常都用@RestController注解进行注解

  • 1234563简而言之,您可以定义自己的注释(如@MyOwnVeryCustomProjectController),该注释本身将标记为@RestController,以便Spring boot 将像Rest Controllers 一样对待使用该自定义注释注释的类(您也可以设置任何参数此方法的合理默认值)。
  • 如果您使用 Java 配置而不是带有注释和组件扫描的纯声明式方法,那么您可能会检查是否有 @Configuration 类为所有控制器聚合 bean 定义。

  • 在 Spring Boot 服务中使用 Spring Actuator。简而言之,它将一些 HTTP 端点暴露给任何 spring-boot 进程。在其他(相当有用的)端点中,有一个mappings 端点,它显示了运行时中所有@RequestMapping 路径的列表。

【讨论】:

    【解决方案2】:

    尝试找到标有注解@RestController 的类。此类将用作@RequestMapping("/student") 中路径的控制器,其中多个 URL/端点由任何一个注释标记:

    @RequestMapping("delete")
    @PostMapping("/create")
    @GetMapping("/list")
    @DeleteMapping("{id}")
    @PutMapping("{id}")
    

    同样,可以有多个控制器,每个控制器又具有多个端点。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 2010-10-27
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多