开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Computer Science

Spring Boot 第一个示例的 @RestController 和 @RequestMapping 注解

在示例源代码类中的第一个注解(annotation)是 @RestController。 这个注解被称为 stereotype 注解。在使用 Spring 的时候,需要对注解有所了解。Spring 有多个类型的注解,例如在包 org.springframework.context.annotation 和 org.springframework.stereotype 的注解。 不仅仅是 @Component,他的派生注解 @Service、@Controller、@RestController 和 @Repository都在这个包中,实际上它就是在告诉使用者这些注解提供 stereotype 的特性(或者称为功能、作用)。 Stereotype 特性最早出现在J2EE6 中,可以理解为围绕着 “元数据” 功能而发展出来的一种设计模式。 这个注解提示人们在阅读代码的时候了解 Spring 实现的功能和扮演的特定的角色。 在这个类中,我们告诉 Spring 是一个 Web 的 @Controller,因此 Spring 会通过这个注解来考虑这个类用于处理访问的 Web 请求。     @RequestMapping 注解,为我们的应用提供了 “routing” 信息。在这里的 routing 可以理解为路径,在我们访问 Web 资源的时候都会要求提供一个路径的信息。 具体有关这个注解的解释为任何 HTTP 的请求,如果使用了 / 路径的话,所有的请求将会映像到 home 方法,或者可以理解为 home 方法 将会被执行。 @RestController 注解将会告诉 Spring 将返回的结果使用 String 字符串来进行渲染,然后将渲染的结果返回给调用者。 @Controller 和 @RestController 之间有什么区别? 非常简单来说 @RestController 是一个特殊版本的 controller。是由 @Controller 和 @ResponseBody 2 个注解合并而成的。 在没有 @RestController 注解之前,你可以使用 @Controller,同时你还需要使用 @ResponseBody 注解来确定返回的内容是什么。设计 @RestController 的目的主要也是为了针对目前越来越流行的微服务和 Rest API 的开发来设计的。     @RestController 和 @RequestMapping 注解都是 Spring MVC 中的注解(这 2 个注解是没有在 Spring Boot 中指定的)。 请参考 Spring 参考文档中的 MVC 部分 来获得更多的有关信息。 https://www.ossez.com/t/spring-boot-restcontroller-requestmapping/1100

2021年01月10日 0Comments 592Browse 0Like Read more
Computer Science

Spring Boot 2.4 第一个示例程序书写代码

为了完成我们的第一个 Spring Boot 示例程序,我们需要向已经创建的项目框架中创建一个 Java 文件。 在默认情况下,Maven 会编译 src/main/java 目录中的源代码(这个是与 Maven 使用的约定有关的,这个目录结构可以修改,但是不建议修改,因为绝大部分人都会遵守这个约定)。 根据 Maven 的源代码约定,你需要按照下面的目录路径和文件名创建一个 Example.java 文件,完整的路径如下: src/main/java/Example.java。 Example.java 文件的内容,你可以直接拷贝下面的源代码。 import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(Example.class, args); } } 尽管上面代码看起来没有什么内容,但是实际上 Spring Boot 的框架已经为你做了很多工作了,在后续的章节中我们将会对代码中的一些重要内容进行解释和说明。 当然,你也可以使用 IDEA 导入到你喜欢的 IDE 中,然后从 IDE 中直接运行进行查看。     这个项目是可以直接启动运行的。 https://www.ossez.com/t/spring-boot-2-4/1099

2021年01月09日 0Comments 556Browse 0Like Read more
Computer Science

Spring Boot 2.4 第一个示例程序添加 Classpath 依赖

Spring Boot 提供了一系列的 “Starters” 来让你将 Jar 添加到你的 classpath 路径中。 我们的项目提供了一系列的 smoke tests,需要使用 spring-boot-starter-parent 定义在 POM 文件的 parent 部分。如果你对 smoke tests 不太了解的话,请参考相关定义和搜索相关文档。 在这里 smoke tests 的定义就是能够让项目能够跑起来,并且实现一些基本的功能。 spring-boot-starter-parent 是一个特殊的 starter。在这个定义中,我们为 Maven 提供了一些有用的默认配置。 同时 spring-boot-starter-parent 还提供了一些 [dependency-management]。 因为上面的的配置,针对依赖,你可以针对 “blessed” 忽略掉 version 标签。 当你针对 Spring Boot 在应用中,想使用一些特定的功能或者构建一些特定的应用,你可以针对需要来选择其他的 “Starters”。 针对当前的示例,我们打算是构建一个 Web 应用程序,因此我们需要添加一个 spring-boot-starter-web 到依赖(dependency)中。 在进行上面的操作之前,我们可以通过运行下面的命令来查看我们当前项目中使用的依赖: $ mvn dependency:tree [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT     mvn dependency:tree 命令行将会针对你的项目使用的依赖打印出依赖的树结构。 现在,你可以看到 spring-boot-starter-parent,但是还没有添加其他的依赖。 如果想添加一些必要的依赖,编辑你的 pom.xml 然后添加 spring-boot-starter-web 依赖代码到 pom.xml 文件的 parent 部分后面。 具体的代码内容,请参考下面的示例: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> 当你再次运行 mvn dependency:tree 的时候,你可以看到在你当前的项目中已经添加上去一些其他的依赖了。包括有 Tomcat web server 和 Spring Boot 本身。     上图显示的是添加 Web 依赖后显示的树。我们会发现添加的 jar 已经明显多了很多。 使用 Maven 的好处是,你不再需要指定版本,可以通过 Maven 直接进行管理。 https://www.ossez.com/t/spring-boot-2-4-classpath/1098

2021年01月09日 0Comments 532Browse 0Like Read more
Computer Science

Spring Boot 2.4 示例创建 POM 文件

我们需要从创建一个 Maven pom.xml 文件开始整个过程。 与我们做饭一样,Maven pom.xml 文件就好像一个菜单,我们需要使用这个来构建你的项目。 打开你常用的文本编辑器,然后将下面的内容拷贝到 pom.xml 文件中。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.0-SNAPSHOT</version> </parent> <description/> <developers> <developer/> </developers> <licenses> <license/> </licenses> <scm> <url/> </scm> <url/> <!-- Additional lines to be added here... --> <!-- (you don't need this if you are using a .RELEASE version) --> <repositories> <repository> <id>spring-snapshots</id> <url>https://repo.spring.io/snapshot</url> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>spring-milestones</id> <url>https://repo.spring.io/milestone</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>https://repo.spring.io/snapshot</url> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <url>https://repo.spring.io/milestone</url> </pluginRepository> </pluginRepositories> </project> 下面的 pom.xml 为上面的内容的内容拷贝到 pom.xml 中的内容。 我们已经测试过了,直接拷贝上面的内容就可以了。 上面的 pom.xml 文件应该能够给你一个可以成功构建的项目。 你可以通过运行 mvn package 来进行测试(在当前,你可能会收到 “jar will be empty - no content was marked for inclusion!” 警告信息,直接忽略即可)。 现在,你就可以将这个 Maven 构建文件导入到任何你喜欢的 IDE 中了(绝大多数 Java IDE 现在都能够支持导入 Maven 项目)。 为了简化操作,在这个示例中,我们将不使用 IDE 而继续使用纯文本编辑器(text editor)。 在运行 Maven 的时候,你会明显的看到警告信息。这个警告信息是没有关系的。 https://www.ossez.com/t/spring-boot-2-4-pom/1089

2021年01月09日 0Comments 631Browse 0Like Read more
Computer Science

Spring Boot 2.4 部署你的第一个 Spring Boot 应用需要的环境

这部分的内容将会对如何开发一个小的 “Hello World!” web 应用程序进行指导,同时还会对使用的 Spring Boot 的关键特性进行一些提示。 我们将使用 Maven 来构建这个项目。我们选择使用 Maven 的原因是大部分的 IDE 都能很好的进行支持。 spring.io 的网站提供了很多使用 Spring Boot 的 “开始使用(Getting Started)” 相关的 指南。 如果你需要解决一些特定的问题,请参考官方网站提供的开始使用指南。 你可以简化创建这个小应用的过程。这是因为 start.spring.io 网站提供了快速构建项目的指南和链接。访问 start.spring.io 地址,然后从依赖搜索中选择 “Web” starter。 通过上面的链接, Spring 的官方网站将会为你快速创建一个新的项目结构,随后你可以通过这个新的项目结构了快速进行代码开发了。 有关快速开启项目的文档,请参考 Spring 初始化文档(Spring Initializr documentation) 页面中内容,来获得更多的详细信息。 在我们开始构建示例应用之前,请打开你的命令行终端并且运行下面的命令以确定你的计算机环境中已经安装了需要的环境。 我们需要 Java 和 Maven 环境。 $ java -version java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) $ mvn -v Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T14:33:14-04:00) Maven home: /usr/local/Cellar/maven/3.3.9/libexec Java version: 1.8.0_102, vendor: Oracle Corporation 请注意,这个示例应用程序需要创建自己的目录。后面的示例内容,我们假定你已经创建了合适的目录,并且你已经在当前的目录中了。     要创建合适目录的原因是 Maven 对目录结构是有特定的约束的。 https://www.ossez.com/t/spring-boot-2-4-spring-boot/1088

2021年01月09日 0Comments 592Browse 0Like Read more
Computer Science

Spring Boot 2.4 从早期版本进行升级

如果你打算从 Spring Boot 的 1.x 版本进行升级的话,请查看 “项目 WIKI 页面中合并指南” 的内容来了解有关升级的详细指南。 请查看 “发布日志(release notes)” 页面中的内容来了解针对每一个发行版本的 “新的和值得注意的特性” 的信息。 当升级到一个新的特性发布版本的时候,一些属性可能需要被重命名或者被删除。 Spring Boot 提供了一个能够分析你的应用程序的工具,你可以通过这个工具来打印出应用的环境和启动诊断工具,来确定 Spring Boot 的属性配置正确和为你提供调试信息。 如果你希望启用上面的这个特性的话,请将下面的依赖添加到你的项目中:   <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-properties-migrator</artifactId> <scope>runtime</scope> </dependency> 添加到环境中的属性,例如当使用 @PropertySource 的时候,将会在诊断工具中显示出来。 一旦你完成了合并,请确定将上面的依赖从你的项目中删除。     如果你希望对已经安装的 CLI 工具进行升级的话,请使用正确的升级工具或者命令(例如,可以使用 brew upgrade)。 如果你是通过手动方式安装 CLI 的话,请参考 [标准的安装] 页面中有关的内容。请注意,当你更新你的 PATH 环境变量来删除任何可能存在的老的参考和应用。 https://www.ossez.com/t/spring-boot-2-4/1081

2021年01月08日 0Comments 557Browse 0Like Read more
Computer Science

Spring Boot 2.4 CLI 快速使用示例

你可以使用下面的命令行来创建 Web 应用程序来测试你的安装是否正常。 创建一个称为 app.groovy 的文件,文件的内容如下: @RestController class ThisWillActuallyRun { @RequestMapping("/") String home() { "Hello World!" } }     然后从 Shell 中运行下面的命令: $ spring run app.groovy 当第一次运行你的应用程序的时候可能需要的时间比较长,这是因为系统需要从远程下载所需要的依赖。在后续运行的时候就会更加快速了。 在任何你喜欢的浏览器的地址栏中输入下面的地址:localhost:8080 ,然后应该能够在浏览器中看到下面的输出: Hello World! 访问 URL 确定输出正确。你也可以适当修改测试文件的内容,已再次确定运行正确。 https://www.ossez.com/t/spring-boot-2-4-cli/1074

2021年01月06日 0Comments 555Browse 0Like Read more
Computer Science

Discourse 上传 PDF 的时候提示未授权的文件

在默认情况下 Discourse 不允许上传 PDF 文件。 当你尝试上传的时候可能会遇到下面的错误:     解决办法 登录 Discourse 的 控制台,然后选择 Settings - Files 中的文件。 你会看到有一个授权的扩展名。     在这里创建一个 PDF,在下面空白处输入 PDF 后,保存就可以了。 重新返回前台尝试上传,这时候应该是没有问题了。 https://www.ossez.com/t/discourse-pdf/820

2021年01月04日 0Comments 614Browse 0Like Read more
Computer Science

Spring Boot 2.4 Windows Scoop 安装命令行工具

如果你使用的是 Windows 操作系统,你可以使用 Scoop 来进行安装。 你可以通过使用下面的命令来安装 Spring Boot CLI: > scoop bucket add extras > scoop install springboot Scoop 将会把 spring 安装到 ~/scoop/apps/springboot/current/bin 目录中。 有关 Windows 安装 Scoop 的方法,请参考:Windows 安装 Scoop 来进行包管理 中的内容。 如果你在安装的过程中出现了一些异常,或者没有看到 app 的 manifest,那么很有可能是因为你安装的 scoop 版本过老而需要更新了。 你可以直接运行 scoop update 命令先进行更新,然后再次尝试进行安装。     Scoop 可以简单理解为一个在 Windows 中可以使用的包管理工具,这个包管理工具需要在 PowerShell 中运行。 我们熟知的 Ubuntu上 的apt-get(在 Ubuntu16 以上可以直接用apt了),MacOS上的 homebrew 都是很优秀的包管理工具。如果你使用的是 CentOS 或者 REHL 的话,我们应该非常熟悉使用 yum 或者 dnf 来进行安装包。 但是在 Windows 平台下,由于 Windows 的开放性,大家都是去各种网站上下载程序,一些软件开发环境的程序也很杂乱,到处都是各种下载链接,容易中病毒还浪费时间。 所以我们有开发者想要 在 Windows 平台上开发包管理工具 —— scoop,简单理解过来就是一个可以在 Windows 平台下使用 yum 或者 dnf 的工具。 根据我的计算机的配置,Spring CLI 已经被安装到: C:\Users\yhu\scoop 路径中了。     安装路径主要对你在后期出现问题的时候进行调试能够提供一些内容上的帮助。   https://www.ossez.com/t/spring-boot-2-4-windows-scoop/810

2021年01月03日 0Comments 569Browse 0Like Read more
Computer Science

Intellij IDEA 在查看 GitHub PR 的时候提示不能载入 data 错误

在通过 Intellij IDEA 查看可用的 PR 的时候,你可能会遇到下面的错误: Can't load data from GitHub [Although you appear to have the correct authorization credentials, the `cwiki-us-spring` organization has enabled OAuth App access restrictions, meaning that data access to third-parties is limited. For more information on these restrictions, including how to whitelist this app, visit https://docs.github.com/articles/restricting-access-to-your-organization-s-data/].     提示的错误信息如上。 上面的提示内容是因为你的仓库的限制,导致你没有办法查看特定的仓库的 PR。 原因和解决办法 这个问题的原因是因为仓库的限制导致你没有办法通过 Intellij IDEA 来查看。 你可以通过设置你的 Organization 的 Third-party application access policy 被设置为 Access restricted 。 你可以通过删除这个 Access restricted,然后再次在 Intellij IDEA 上刷新就可以看到可用的 PR 了。 当然这个前提是你需要有 GitHub Organization 的权限才可以。     返回 Intellij IDEA 后重新刷新。     重新刷新后,可以查看已有在 GitHub 上的 PR。 https://www.ossez.com/t/intellij-idea-github-pr-data/809

2021年01月03日 0Comments 611Browse 0Like Read more
1…45678
Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (511)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1