2023年7月18日发(作者:)
SpringBootDevTools使⽤教程springboot - devtools参考:引⼊DevTools通过提供⾃动重启和LiveReload功能,使您更快、更轻松地开发Spring Boot应⽤程序。除此之外,它还将各种属性设置为更适合本地开发的值。此外,它允许您远程连接到您的应⽤程序,并仍然使⽤其⼤部分功能。在⽣产中运⾏时,不要使⽤DevTools。如何使⽤DevTools进⼀步加快Spring Boot开发速度?你需要做的就是添加正确的依赖关系,与Spring Boot⼀样,设置⾮常简单。如果您使⽤Maven: spring-boot-devtools true⾃动重启每当类路径中的⽂件发⽣更改时,DevTools会⾃动重新启动正在运⾏的应⽤程序,并应⽤新的更改。在本地开发时,这可能很有价值,因为您不需要⼿动重新部署应⽤程序。重启仍然需要花费很多时间,你可能认为它不会那么有⽤,。幸运的是,这些重启⽐常规重启更快,因为DevTools使⽤了⼀个聪明的技巧。在开发应⽤程序时,您通常会更改⼀个或多个类,并希望检查正在运⾏的应⽤程序中的结果以获得反馈。您更改应⽤程序的⼀⼩部分,因为⼤多数加载的类来⾃框架和第三⽅库。,Spring DevTools使⽤两个类加载器 - base和restart。base类加载器加载不更改的类。你正在使⽤的类由restart类加载器加载。每当触发重启时,都会重新启动并重新创建restart的类加载器。这样重新启动应⽤程序的速度⽐平常快得多,并且可以使⽤JRebel等⼯具作为动态类重新加载的替代⽅法。在IDE中触发重新启动需要设置idea1. 全局搜索 mac : double shift2. 选择registry…3. 勾选compile-auto…4. 修改代码后 command+F9 重新编译后,springboot ⾃动重启应⽤只要类路径发⽣更改,就会触发重新启动。但是,这取决于您的IDE。这意味着,仅仅更改.java⽂件是不够的。重要的是您的IDE实际上更新.class了类路径上的⽂件。使⽤IntelliJ IDEA时,您需要构建项⽬(Ctrl + F9或Build→Build Project)。您还可以将IDEA配置为⾃动重建。或者,需要打开SpringBoot运⾏配置并定义触发应⽤程序更新时发⽣的情况,Alt + Shift + F10 或F9 进⾏运⾏配置,选择编辑配置:在On Update action中选择Update trigger file,在调⽤Update操作时触发DevTools的Restart;甚⾄可以选择尝试热插拔的选项,并仅在热插拔失败时使⽤DevTools重新启动。在On frame deactivation中选择Update classes and resources。在IDEA窗⼝失去焦点时重新加载所有静态资源和模板(例如,切换到浏览器窗⼝时)。确认后,修改源码,切换到浏览器,刷新浏览器,可以看到更新后的结果,如果还不⾏按(Ctrl + F10)强⾏更新重启。仅限开发Spring Boot DevTools的⽤法仅⽤于开发,⽽不⽤于⽣产。如果您的应⽤程序检测到您正在⽣产中运⾏,则会⾃动禁⽤DevTools。部署时有两种模式:fully packaged artifact完全打包和exploded artifact ;采取前者打包⽅式Spring会认为是⽣产应⽤;后者认为是开发模式,在Idea等IDE中采取的是后者。Live ReloadLiveReload(/)是⼀个有⽤的⼯具,它允许您在⽂件中进⾏更改时⽴即在浏览器中更新页⾯,如HTML,CSS,图像等。它甚⾄可以根据需要预处理⽂件 - 这意味着⾃动编译SASS或LESS⽂件。Spring DevTools⾃动启动LiveReload服务器的本地实例,该服务器监视您的⽂件。您需要做的就是安装⼀个浏览器扩展,然后你就可以了。它不仅可⽤于开发应⽤程序的前端(如果将其作为Spring应⽤程序⼯件的⼀部分进⾏分发),还可⽤于监视和重新加载REST API的输出。------属性覆盖在本地开发应⽤程序时,与在⽣产环境相⽐通常需要不同的配置。⾃⼰管理多组配置是不必要的复杂。好消息是Spring Boot DevTools为您的本地开发配置了许多开箱即⽤的属性。====tent=d====-resolved-exception=pment=d=true可以检查DevToolsPropertyDefaultsPostProcessor中所有属性的列表。远程连接除本地开发外,您还可以连接到运⾏DevTools的远程应⽤程序。这不适⽤于⽣产环境,因为它可能是⼀个严重的安全风险。但是,它在预⽣产环境中⾮常有⽤。默认情况下不启⽤远程连接。您需要通过修改pom⽂件显式启⽤它:ring-boot-maven-pluginfalse然后,您需要设置⼀个密码,以便在连接到远程应⽤程序时⽤于⾝份验证:=somesecret远程应⽤程序运⾏后,您可以启动远程连接会话,现在,您需要启动SpringApplication,使⽤远程应⽤程序的URL作为参数启动。请注意,https如果可能,请使⽤https。在IDE中轻松运⾏远程连接。在IDEA中,您只需创建⼀个新的运⾏配置。转到Run → Edit Configurations…并创建⼀个+左上⾓带有图标的新配置。选择Application类型。全局配置可以像使⽤任何其他Spring应⽤程序⼀样使⽤配置属性配置DevTools。这通常意味着编辑ties您的项⽬。此配置对于每个应⽤程序是独⽴的。但是,在某些情况下,为同⼀台计算机上运⾏的所有应⽤程序进⾏全局配置可能很⽅便。您可以创建⼀个名为.ties位于$HOME⽬录中的属性⽂件。此⽂件中声明的配置将应⽤于运⾏DevTools的所有应⽤程序。限制使⽤DevTools的Spring应⽤程序会⾃动启动LiveReload服务器。不幸的是,此服务器中只有⼀个实例可以同时运⾏。更确切地说,只有第⼀个可⾏。这不仅适⽤于使⽤DevTools的Spring应⽤程序的多个实例,也适⽤于任何其他应⽤程序,这些应⽤程序也在后台使⽤LiverReload,例如Gatsby在开发模式下。如果要将Spring应⽤程序配置为不启动LiveReload服务器,可以在ties加⼊:d=false关机钩ShutdownHookDevTools依赖于关机挂钩的SpringApplication。如果您使⽤以下⽅法⼿动禁⽤挂钩,它将⽆法正常⼯作:isterShutdownHook(false);认情况下,挂钩已启⽤,因此除⾮您明确禁⽤它,否则⽆需担⼼它。与第三⽅库的冲突DevTools通常应该正常运⾏,但它可能与第三⽅库有冲突。特别是,已知问题是使⽤标准ObjectInputStream进⾏反序列化存在存在冲突。如果发⽣此类冲突,您可以通过设置禁⽤⾃动重启:d=false将不再触发重启。但是,仍将使⽤重新启动类加载器。如果您需要完全禁⽤类加载器,则需要在启动应⽤程序之前执⾏此操作:public static void main(String args) {perty(“d”, “false”);(, args);}即使您不使⽤⾃动重启,您仍然可以从DevTools提供的其他功能中受益。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689629857a272216.html
评论列表(0条)