为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

SpringBoot使用Maven工具自动重启SpringBoot项目-热部署

2023-06-23 5页 doc 150KB 17阅读

用户头像 个人认证

is_856463

暂无简介

举报
SpringBoot使用Maven工具自动重启SpringBoot项目-热部署     SpringBoot使用Maven工具自动重启SpringBoot项目|热部署                  文章目录使用的软件配置开发者工具在浏览器中安装`LiveReload`自动重启自定义监听路径使用触发器文件剔除资源禁用重新启动1.使用应用程序属性文件2.在调用SpringApplication.run()之前使用系统属性,如下所示。自动重新启动中常用的属性参考文献下载源码本页将介绍SpringBoot使用maven的开发工具自动重启的情况。当我们的应用程序使用springboot开发者工具时,只要在开发...
SpringBoot使用Maven工具自动重启SpringBoot项目-热部署
     SpringBoot使用Maven工具自动重启SpringBoot项目|热部署                  文章目录使用的软件配置开发者工具在浏览器中安装`LiveReload`自动重启自定义监听路径使用触发器文件剔除资源禁用重新启动1.使用应用程序属性文件2.在调用SpringApplication.run()之前使用系统属性,如下所示。自动重新启动中常用的属性参考文献下载源码本页将介绍SpringBoot使用maven的开发工具自动重启的情况。当我们的应用程序使用springboot开发者工具时,只要在开发模式下修改类路径中的文件,它就会自动重启服务器并刷新浏览器页面。我们使用springbootmaven命令mvnspring-boot:run运行我们的分解形式的项目。Springboot开发工具是spring-boot-devtools,需要在maven或gradle中配置。开发者工具用于快速开发。当我们在IDE中使用分解形式的项目时,在修改了任何文件后,我们需要测试我们的应用程序。为了节省开发时间,有许多插件,如JRebel,可以使用类加载器重新加载文件的变化。Springboot也提供了一个工具来帮助开发者快速开发,这就是spring-boot-devtools。在这里,我们将了解开发者工具的一个功能,即在类路径中的任何文件发生变化时,自动重启服务器以及在浏览器上刷新页面。为了获得页面刷新,我们需要在浏览器中安装LiveReload。开发者工具提供了许多属性,这些属性将被配置在应用程序的属性文件中以控制自动重启。现在我们将提供一个例子,一步一步地使用开发者工具进行自动重启。使用的软件Java8Maven3.3.9SpringBoot1.4.3.RELEASEEclipseMars配置开发者工具Spring提供了spring-boot-devtools的开发者工具。这些工具在应用开发模式中很有帮助。开发者工具的一个特点是自动重启服务器。要使用maven配置开发者工具,我们需要添加spring-boot-devtools的依赖关系,如下所示。org.springframework.bootspring-boot-devtoolstrue如果我们使用Gradle,我们将添加spring-boot-devtools的依赖项,如下所示。compile("org.springframework.boot:spring-boot-devtools")在使用开发者工具时,我们应该知道以下几点。1.当我们创建一个JAR或WAR作为完全打包的应用程序并运行它时,开发人员工具就会自动被禁用。2.当我们使用java-jar或特殊类加载器运行应用程序时,它被认为是一个“生产项目(productionapplication)”,开发工具将被自动禁用。3.最佳做法是设置为true,这样可以避免开发人员工具在其他模块上传递应用。Gradle目前不支持此功能。4.我们还可以在maven和gradle中使用excludeDevtools,以确保开发人员工具JAR永远不会包含在生产构建中。5.配置开发人员工具后,使用restartclassloader启动分解形式的项目,并通过springboot使用base类加载器启动完全打包的应用程序。在浏览器中安装LiveReload在springMVC项目中,有一个网络服务器和浏览器的参与。在开发模式下,每当我们改变任何文件时,通常需要重新启动服务器并刷新浏览器以获得更新的数据。Springboot开发工具已经将这两项任务自动化。为了自动刷新浏览器,我们需要安装LiveReload。在我们的例子中,我使用的是Firefox。我需要在我的Firefox中安装LiveReload。按照下面的步骤,准备好LiveReload。1.进入LiveReload扩展链接并安装它。2.要使用LiveReload,我们需要运行LiveReload服务器。对于我们来说,springboot开发工具将启动一个LiveReload服务器。3.LiveReload可以被启用和禁用。要使用LiveReload刷新页面,必须启用它。4.在我的例子中,我在Firefox中使用LiveReload。要启用它,首先进入Firefox的自定义视图,从那里将LiveReload添加到工具栏。现在,右击LiveReload图标并启用它。在启用它之前,确保maven的mvnspring-boot:run命令正在运行,这将启动tomcat和LiveReload服务器。自动重启Springboot的开发者工具有一个功能,每当类路径上的文件被修改,就会自动重启服务器并刷新浏览器页面。一旦我们在maven或gradle中配置了开发者工具,那么在eclipse中修改文件后,当我们保存时,自动重启功能就会启动。所有在类路径中的文件都不需要服务器重启。很多文件只需要在浏览器上刷新页面就可以完成任何修改。当我们对java文件进行任何修改并保存时,服务器重启和浏览器刷新都需要。有些文件不需要服务器重启,只需要在浏览器上刷新页面,例如静态页面、Thymeleaf模板、HTML页面等。对于类路径上同样需要在浏览器上安装LiveReload的以下路径,Springboot开发工具默认只在浏览器上执行页面刷新。这些目录模式如下。/META-INF/maven/META-INF/resources/resources/static/public/templates现在我们将用SpringMVC和Thymeleaf创建一个示例应用程序。这里我们还将创建一些不在类路径中的文件。找到项目结构。位于类路径中的文件如下所示。1.Java文件:在浏览器上自动重启服务器和刷新页面src\main\java\com\concretepage\Application.javasrc\main\java\com\concretepage\controller\HelloController.java2.资源文件:默认情况下,仅在浏览器上自动刷新页面src\main\resources\static\index.htmlsrc\main\resources\templates\hello.htmlsrc\main\resources\application.properties我们还创建了一些不在类路径中的文件。files\arigger.txtfiles\txt\txtfile.txt现在找到我们的maven配置文件。pom.xml4.0.0com.concretepagespring-demo0.0.1-SNAPSHOTjarSpringBootAutomaticRestartorg.springframework.bootspring-boot-starter-parent1.4.3.RELEASEUTF-8UTF-81.8org.springframework.bootspring-boot-starter-thymeleaforg.springframework.bootspring-boot-devtoolstrueorg.springframework.bootspring-boot-maven-plugin测试自动重启的步骤。1.使用链接下载我的演示项目源代码并将其导入eclipse。2.使用命令提示符进入项目的根目录,运行命令mvncleaneclipse:eclipse并刷新eclipse中的项目文件夹。这将创建一个类路径文件。3.现在运行命令mvnspring-boot:run,这将启动一个Tomcat服务器。或者在IDE中进入主类。右键单击并RunAs->JavaApplication4.现在进入浏览器,访问http://localhost:8080/或http://localhost:8080/hello。5.点击浏览器工具栏菜单上的LiveReload图标,启用自动刷新页面。6.现在改变java文件中的一些内容并保存。我们将观察到,服务器将重新启动,浏览器上的页面将刷新。7.现在改变HTML文件中的内容。我们将观察到,只有浏览器上的页面会刷新,而服务器不会重新启动。自定义监听路径到目前为止,我们已经了解到SpringBoot开发者工具只监听位于类路径下的文件,以便自动重新启动。现在我们将包括那些不在类路径中的文件。在我们的项目中,我们在包含以下文件的类路径之外创建了一个名为files的目录。files\apptrigger.txtfiles\txt\txtfile.txt尽管文件目录不在类路径中,但它仍然可以利用自动重启的优势。为了实现它,SpringBoot提供了需要在应用程序属性文件中配置的属性,如下所示。application.propertiesspring.devtools.restart.additional-paths=files这里的文件是我在项目的根目录下创建的目录。配置完属性后,我们需要重新运行命令mvnspring-boot:run,现在通过改变文件apptrigger.txt或txtfile.txt中的内容来测试自动重启,并保存它,我们将观察到服务器将重启,页面将在浏览器上刷新。使用触发器文件Springboot提供了一个配置触发器文件的属性,以实现如果触发器文件被修改时,开发工具才会开始监听文件变化。在使用IDE的开发模式中,我们经常改变文件并保存它。为了避免不必要的自动重启,我们可以使用一个触发器文件。每当我们修改触发器文件时,只有当开发工具监听到文件的任何变化,如果文件有任何变化,自动重启就会启动。触发器文件可以手动修改,也可以使用IDE插件。为了配置触发文件,springboot提供了spring.devtools.restart.trigger-file属性,可以按以下方式配置。application.propertiesspring.devtools.restart.additional-paths=filesspring.devtools.restart.trigger-file=apptrigger.txt在上述配置中,apptrigger.txt是我们的触发器文件,它位于files/apptrigger.txt路径上。找到下面的步骤来测试触发器文件。1.首先重新运行命令mvnspring-boot:run2.现在修改任何文件,假设我正在修改任何java文件,例如HelloController.java,然后修改触发器文件,即apptrigger.txt。我们将观察到,自动重启将被启动。3.我们需要明白,如果我们只修改apptrigger.txt,那么就不会有自动重启。这是因为当我们修改触发器文件apptrigger.txt时,开发工具会开始观察文件的任何变化,由于我们没有修改其他文件,所以自动重启不会发生。剔除资源对于位于类路径下的文件,springboot开发工具会关注完全自动重启,但文件夹结构为/META-INF/maven、/META-INF/resources、/resources、/static、/public或/templates的模板和静态文件,默认只获得页面刷新。我们可以打破模板和静态文件的默认设置,实现完全自动重启。为了实现这一点,我们需要配置spring.devtools.restart.exclude属性,如下所示。application.propertiesspring.devtools.restart.exclude=static/**让我们了解现在将发生什么。1.首先重新运行命令mvnspring-boot:run2.现在,如果我们修改文件templates\hello.html,开发工具将自动重新启动服务器,并刷新页面。3.如果我们修改文件static\index.html,开发工具将只刷新页面。4.如果我们想把更多的文件夹排除在完全自动重启之外,我们可以配置逗号分隔,如下所示。spring.devtools.restart.exclude=static/**,templates/**禁用重新启动如果我们想从开发工具中禁用自动重启功能,我们可以通过两种方式配置spring.devtools.restart.enabled属性来实现。1.使用应用程序属性文件application.propertiesspring.devtools.restart.enabled=false在这种情况下,开发人员工具将初始化重启类加载器,但不会监视文件更改。2.在调用SpringApplication.run()之前使用系统属性,如下所示。@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){System.setProperty("spring.devtools.restart.enabled","false");SpringApplication.run(Application.class,args);}}在这种情况下,开发工具不会初始化重启类加载器,也不会监听文件变化。因此,自动重启被完全禁用。自动重新启动中常用的属性这里我们列出了用于自动重启的有用的开发工具属性。这些属性是在application.properties文件中配置的。spring.devtools.restart.additional-paths:添加不在类路径中的自动重启路径。spring.devtools.restart.trigger-file:指定一个触发器文件名,现在开发人员工具仅在修改触发器文件时才监听重新启动检查。spring.devtools.restart.exclude:指定路径,将文件排除在完全自动重启之外。spring.devtools.restart.additional-exclude:指定将被排除在完全自动重启之外的其他路径,保持默认设置。spring.devtools.restart.enabled:如果值为false,那么开发者工具将停止监听自动重启的文件。现在我们将提供用于定制重启加载器的属性,这些属性将被配置在META-INF/spring-devtools.properties文件中。restart.include.:它是一个前缀,我们使用它来声明一个属性,并通过正则表达式模式来指定JAR的名称,以便将一个JAR从基础类加载器包含到重启类加载器。restart.exclude.:它是一个前缀,我们使用它声明一个属性,并使用正则表达式模式分配JAR名称,以将JAR从重新启动类加载器排除到基本类加载器。参考文献【1】UsingSpringBoot:Developertools【2】SpringBootAutomaticRestartusingDeveloperToolswithMaven下载源码spring-boot-automatic-restart-using-developer-tools-with-maven.zip -全文完-
/
本文档为【SpringBoot使用Maven工具自动重启SpringBoot项目-热部署】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索