zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然SPRINGBOOT开发实战--SpringBoot DevTools

    Spring Boot DevTools
    Spring Boot 1.3提供了另一个名为Spring Boot DevTools的模块。 DevTools代表 Developer Tool 。该模块的目的是在使用Spring Boot应用程序时尝试并缩短开发时间。 Spring Boot DevTools接受更改并重新启动应用程序。
    我们可以通过在pom.xml文件中添加以下依赖项来在我们的项目中实现DevTools。
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime<scope >
    </dependency>
    Spring Boot DevTools提供以下功能:
    属性默认值
    自动重启
    LiveReload
    远程调试隧道
    远程更新和重新启动
    属性默认值: : Spring Boot提供了模板技术 Thymeleaf ,其中包含属性 spring.thymeleaf.cache。。缓存并允许我们更新页面,而无需重新启动应用程序。但是在开发过程中设置这些属性总是会带来一些问题。
    当我们使用spring-boot-devtools模块时,不需要设置属性。在Thymeleaf,Freemarker,Groovy模板的开发缓存期间,将自动禁用。
    注意: 如果我们不想在应用程序上应用属性默认值,可以在application.properties文件中将configprop: spring.devtools.add-properties []设置为false。
    自动重启: 自动重启意味着重新加载Java类并在服务器端对其进行配置。服务器端更改后,它会动态部署,服务器会重新启动,并加载修改后的代码。它主要用于基于微服务的应用程序。 Spring Boot使用 两种类型的ClassLoader:
    不变的类(三分之二)已加载到基本ClassLoader中。
    我们正在积极开发的类已加载到重新启动ClassLoader中。
    应用程序重新启动时,重新启动的ClassLoader被丢弃,并填充了一个新的类。因此,基本的ClassLoader始终可用并已填充。
    我们可以使用属性 spring.devtools.restart.enabled 设置为 来禁用服务器的自动重启。错误。
    记住:
    DevTools始终监视类路径资源。
    触发重启的唯一方法是更新类路径。
    DevTools需要单独的应用程序类加载器才能正常工作。默认情况下,Maven派生应用程序进程。
    自动重新启动与 LiveReload一起很好地工作。
    DevTools依赖于应用程序上下文的关闭挂钩在重新启动期间将其关闭。
    LiveReload: Spring Boot DevTools模块包括一个名为 LiveReload的嵌入式服务器。,只要我们在其中进行更改,该应用程序就可以自动触发浏览器刷新。资源。这也称为 自动刷新。
    注意: 我们可以通过设置属性 spring.devtools.livereload来禁用LiveReload。启用为 false。
    它提供了适用于Chrome,Firefox和Safari的浏览器扩展。默认情况下,启用LiveReload。 LiveReload在以下路径上工作:
    /META-INF/maven
    /META-INF/resources
    /资源
    /静态
    /public
    /模板
    我们还可以通过排除上述路径来禁用浏览器中的自动重新加载。例如:
    spring.devtools.restart.exclude=public/**, static/**, templates/**
    我们可以使用属性 spring.devtools.restart.additional-paths查看其他附加路径。例如:
    spring.devtools.restart.additional-paths=/path-to-folder
    如果我们要排除其他路径并希望保留默认路径,请使用属性 spring.devtools.restart.additional-exclude。例如:
    spring.devtools.restart.additional-exclude=styles/**
    记住
    我们可以一次运行一台LiveReload服务器。
    启动应用程序之前,请确保没有其他LiveReload服务器正在运行。
    如果我们从IDE启动多个应用程序,则它仅支持第一个LiveReload。
    远程调试隧道: Spring Boot可以通过HTTP将JDWP(Java调试线协议)直接隧道到应用程序。它甚至可以将应用程序部署到仅公开端口80和443的Internet Cloud提供商。
    远程更新和重新启动: DevTools提供的另一个技巧是: 它支持远程应用程序 更新和 重新启动。它监视本地类路径中的文件更改,并将其推送到远程服务器,然后重新启动。我们还可以将此功能与LiveReload结合使用。
    使用触发文件
    由于频繁的重启,自动重启有时会减慢开发时间。为了解决这个问题,我们可以使用一个 触发文件。。SpringBoot监视触发文件并检测该文件中的修改。它会重新启动服务器并重新加载所有先前的更改。
    我们可以通过添加属性 spring.devtools.restart.trigger-file在我们的应用程序中实现触发文件。是内部的还是外部的。例如:
    spring.devtools.restart.trigger-file=c:/workspace-sts-3.9.9.RELEASE/restart-trigger.txt
    Spring Boot DevTools示例
    步骤1: 使用Spring Initializr https://start.spring.io/。
    步骤2: 提供 组名称和 工件 ID。我们提供了组名 com.lidihuo 和工件ID spring-boot-devtools-example。
    步骤3: 添加以下依赖项: spring-boot-starter-web 和 spring-boot-devtools 。
    步骤4: 点击 生成按钮。它将下载项目的 Jar 文件。
    步骤5: 提取Jar文件。
    步骤6: 将文件夹导入STS。
    文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-devtools-example->完成
    导入成功后,我们可以在STS的Package Explorer部分中看到以下目录。

    步骤7: 打开 SpringBootDevtoolsExampleApplication.java 并将其作为Java应用程序运行。
    然后,在应用程序中进行任何更改(编辑或删除一些文件或代码),然后保存所做的更改。保存更改后,服务器将重新启动并获取更改。

  • 相关阅读:
    KVM -> 热迁移_05
    KVM -> 虚拟机磁盘管理_03
    使用光盘搭建本地yum源
    KVM -> 虚拟机管理&console登录_02
    使用windows-SQLyog连接linux-mysql
    linux下登陆mysql失败
    忘记root密码时如何重设密码
    批处理程序:自动登陆服务端,并循环执行某些命令
    linux--磁盘分区
    linux--档案与目录管理
  • 原文地址:https://www.cnblogs.com/tszr/p/15142441.html
Copyright © 2011-2022 走看看