当前位置: 首页 > 知识库问答 >
问题:

Spring Boot开发工具

夔博
2023-03-14

我正在SpringBoot中编写一个RESTAPI,它在运行时生成一个类、控制器和存储库。生成代码后,我将使用开发工具重新编译该类。

我已经在pom中包含了开发工具依赖项。xml和所有东西在我的本地机器上都可以正常工作。然而,一旦我部署到Ubuntu服务器,并且在运行时创建了一个新类,当我尝试访问endpoint时,它会生成一个错误。

{
"timestamp": "2020-04-05T03:26:53.733+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/api/reg"

}

当我关闭Tomcat服务器并重新运行应用程序时,先前生成的类及其控制器将可用,并且能够访问endpoint。

所以我的问题是;我如何让Spring引导重新编译和扫描所有生成的组件,一旦类在运行时生成,而不必关闭服务器?

共有2个答案

龙浩博
2023-03-14

SpringBootDevTools在使用哪个IDE时是一个有用的特性,因为它为代码更改提供了一个非常快速的反馈循环,请注意,在运行完全打包的应用程序时,开发工具会自动禁用。

当它使用java-jar部署/启动或使用特定的类加载器触发时,它将被禁用。然后它被认为是一个生产应用程序。

您可以将依赖项标记为可选,这是防止devtools应用于其他模块的最佳实践。您可以在本spring文档中查阅更多详细信息,

https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-引导工具

常乐
2023-03-14

问题可能是在您的本地计算机上使用某种嵌入式Tomcat或Jetty。它能够在运行时获取更改。

我假设您使用Tomcat作为Web服务器(不是随jar自带的嵌入式服务器),因为您提到必须手动重新启动它。不确定Tomcat Web服务器是否能够在运行时拾取类更改。

如果您希望Tomcat在运行时重新加载类,请尝试查看此答案。

 类似资料:
  • Git https://skyao.gitbooks.io/learning-git/installation/ubuntu1604.html sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git gitbook https://skyao.gitbooks.io/leaning-

  • 测试是 Web 应用开发过程中不可获缺的工作。Nuxt.js 尽量帮助你简化这部分工作。 端对端测试 ava 是一个很强大的 JavaScript 测试框架,结合 jsdom,我们就可以轻松地给 nuxt 应用进行端对端测试。 首先,我们需要添加 ava 和 jsdom 作为项目的开发依赖: npm install --save-dev ava jsdom 然后在 package.json 中添加

  • 第三方 SDK C#: v2ray-dotnet-sdk 自动化工具 V2Ray 使用下列自动化工具进行编译和发布。 Bazel: 用于编译和打包。 Azure DevOps: 用于部分项目的自动化发布。 Google Cloud: 用于部分项目的自动化发布。 CloudFlare: 用于支持官网和域名解析。

  • 剖析性能 使用 Devel::NYTProf,或 Devel::DProf。 分析代码质量 使用 Perl::Critic,它基本上是针对 Perl 的 lint。 分析变量结构 使用 Data::Dumper。

  • 主要内容:常用源码编辑工具介绍,集成开发工具介绍本节介绍一下 Java 常用的几个开发工具。下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就是——它们都是为了给 Java 编码和开发提供卓越的支持。 常用源码编辑工具介绍 Java 源代码本质上其实就是普通的文本文件,所以理论上来说任何可以编辑文本文件的编辑器都可以作为我们的 Java 代码编辑工具。比如:Windows 记事本,Mac OS X 下的文本编辑,Linux 下的 vi

  • development tool(开发工具) LoopBack 提供了两组基本的应用开发工具: slc loopback, 是个命令行工具用于创建和修改LoopBack应用。 StrongLoop Arc, 是个图形化工具拥有开发,部署和监控LoopBack应用。 slc 命令行 slc 命令行工具将辅助开发人员在整个开发周期中生成和修改各种应用组件: 使用应用生成器 迅速生成原型应用(scaff

  • 测试是 Web 应用开发过程中不可获缺的工作。Nuxt.js 尽量帮助你简化这部分工作。 端对端测试 ava是一个很强大的 JavaScript 测试框架,结合jsdom,我们就可以轻松地给nuxt应用进行端对端测试。 首先,我们需要添加ava和jsdom作为项目的开发依赖: npm install --save-dev ava jsdom 然后在package.json中添加测试脚本,并配置

  • 本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。 LiteIDE LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。 图1.4 LiteIDE主界面 LiteIDE主要特点: 支持主流操作系统 Windows Linux MacOS X Go编译环境管理和切换 管理和切换多个Go