春季靴开发工具教程

在这篇文章中,我们’我会查什么 弹簧 必须提供开发人员体验。

总览


Using IDEs like Eclipse, 弹簧 Tool Suite, Intellij Idea a typical development setup includes an application code base that gets deployed on a Web Application Server like Wildfly or Tomcat or even Glassfish. The speed of development is based on the Edit, Compile, Run Cycle and each cycle requires restarting the server for the application to load new changes. This leads to a lot of time being wasted waiting for application server to 开机 up.

叛逆者

叛逆者允许开发人员在执行过程中跳过重建和重新部署 爪哇 开发并维护应用程序状态。这使开发人员可以实时查看代码更改如何影响其应用程序,并通过避免重新构建和重新部署来节省大量时间。它’基于的概念 热交换 但是所有这些都是有代价的,根据您的用例,JRebel可能会变成昂贵的选择。

春季靴 DevTools简介

春季靴 includes an additional set of tools that can make the application development experience a little more pleasant. The 弹簧-boot-devtools module can be included in any project to provide additional development-time

将Devtools添加到您的项目

获取文件>新建项目并添加必要的依赖项,您可以转到 弹簧 Starter IO。并添加以下依赖项:

  • 弹簧-boot-devtools

After that your pom.xml would look like:

The 范围 is 运行 meaning this is dynamically loaded code and is not directly referenced in program code and keeps it 从 being transitive. The 可选的 flag is set to 真正 prevents it 从 being transitively applied to other modules that use your project.

春季靴 DevTools功能

属性默认值

弹簧-boot会执行很多自动配置,并且基本上会根据您的环境设置不同的配置文件。
它允许您基于以下内容设置属性 型材 太。

记录中

Devtools would switch the log level to debug to provide more insights into what’s happening to the application at a given instance. e.g. putting 开发工具 in a REST api project will give you information about the input request,processing handler, the response and more.

//启用请求记录(但这不会记录正文)
弹簧.http.log-request-details = 真正

快取

在生产中,依赖于各种缓存(例如模板引擎)至关重要’s缓存,用于缓存标头
静态资源等),但在开发设置中’d要禁用缓存,以便您始终可以看到已执行的最新更改。如果在您的开发环境中启用了缓存,则提供给您的数据可能会过时,从而导致清除缓存的时间浪费或在确定是否已解决错误方面造成混乱。

DevTools通过将缓存设置为false并启用其他设置来在您的开发环境中为您配置许多这些缓存设置。’会引导您的开发技能。

缓存选项通常由application.properties文件中的设置配置。

–spring.thymeleaf.cache = 假
–spring.freemarker.cache = 假
–spring.groovy.template.cache = 假
–spring.mustache.cache = 假
–server.servlet.session.persistent = 真正
–spring.h2.console.enabled =真
–spring.resources.cache.period = 0
–spring.resources.chain.cache = 假
–spring.template.provider.cache = 假
–spring.mvc.log-resolved-exception = 真正
–server.servlet.jsp.init-parameters.development = 真正
–spring.reactor.stacktrace-mode.enabled = 真正

If you don’t want property defaults to be applied you can set 弹簧.devtools.add-properties=false in your application.properties.

自动重启

代码更改和部署以测试是应用程序开发的关键部分,每次修改代码时,都需要重新部署更改。每当您修改类文件时,Spring Boot DevTools都会通过自动重启应用程序来帮助您。

Now restarts are also an elaborate process and the server does take some time to 开机 up but this 自动重启 is not the traditional stop and re-run.

Under the hood, 弹簧 DevTools uses two classloaders:
– base: 不变的类别。
– restart: 正在积极研究的课程。

Whenever a restart is triggered, existing restart classloader is discarded and recreated and is much faster than usual.
This is what makes 开发工具 different 从 tools like 叛逆者 which uses dynamic class reloading. At this event, a log is written with changes to your application auto-configuration.
这是您可以执行的一些常见配置的列表。

//禁用日志
弹簧.devtools.restart.log-condition-evaluation-delta = 假

//另外设置资源以排除触发自动重启spring.devtools.restart.exclude = static / **,public / **

//要保留默认值并添加其他排除规则,请使用以下内容代替上面的内容
弹簧.devtools.restart.additional-exclude = //添加类路径以触发自动重启
弹簧.devtools.restart.additional-paths =

//要完全禁用此功能
弹簧.devtools.restart.enabled = 假

//要在更改时(且仅在更改时)设置文件,应触发重新启动
弹簧.devtools.restart.trigger-file =

//将项目子模块(添加为.jar)添加到自动重启
restart.include.projectcommon = /<YOUR_JAR_NAME>-[\\w\\d-\.]+\.jar

Restart functionality does not work well with objects that are de-serialized by using a standard ObjectInputStream.If you need to deserialize data, you may need to use 弹簧’s ConfigurableObjectInputStream in combination with Thread.currentThread().getContextClassLoader().

实时重载

This feature is mostly related to a webapp (maybe a jsp) where you can make changes to the HTML, CSS and see them change almost instantly. Very useful when trying to get that last button pixel perfect by pre-processing files (compiling SASS or LESS files) as needed. Another use case would be to monitor and reload the output of your APIs.
一次只能运行一个实例,并且如果使用此功能运行多个应用程序,则只有第一个可以运行。

//禁用它
弹簧.devtools.livereload.enabled = 假

您可以为浏览器安装浏览器插件以支持它。我使用Chrome和 这个插件 派上用场。您也可以为浏览器查找类似的插件。

全局设置

如果您必须根据开发环境将一堆设置复制并粘贴到每个项目中,那么DevTools会是多么出色
你在努力。 DevTools提供了一种很好的方法来定义每个使用DevTools的应用程序都会使用的全局设置。

Just create a folder at $HOME/.config/spring-boot and add a 弹簧-boot-devtools.properties file with all your
preferences. Other config extensions supported are yaml and yml

如果您激活一个 弹簧轮廓 从这个全局文件中,’没关系。您在项目中设置的配置文件将始终被选择 特定于配置文件的配置文件

远程应用

This is more of a UAT, Pre-Prod feature but I would Highly NOT recommend it keeping this feature active in your production systems as even though it can be useful, it causes serious security threats to your production setup. Hence it’默认禁用。要在构建插件中启用它,请添加以下配置

and now just set a password in your application.properties for the client to interact

弹簧.devtools.remote.secret =

A Piece of advice would be to always use https when using this feature. It cannot be emphasized enough on how risky this feature is in your production setup.

远程客户端应用程序旨在在您的IDE中运行。你需要跑步
组织.springframework.boot.devtools.RemoteSpringApplication 具有与您连接到的远程项目相同的类路径。该应用程序的唯一必需参数是它连接到的远程URL。远程客户端以与本地重新启动相同的方式监视应用程序类路径中的更改。任何更新的资源都将推送到远程应用程序,并且(如果需要)触发重新启动。如果您迭代使用本地没有的云服务的功能,这将很有帮助。

文件系统观察者

它以一定的时间间隔轮询类更改,然后等待预定义的静默期以确保没有更多更改,从而工作。然后将更改上传到远程应用程序。如果延迟时间过长,并且更改需要更长的时间才能上载。您可以设置以下属性以针对这些情况进行调整

弹簧.devtools.restart.poll-interval = 2秒
弹簧.devtools.restart.quiet-period = 1s

结论

您已经了解了Spring 开发工具的需求,Spring 开机 开发工具的功能,例如属性默认值,自动重启,实时重载,文件系统监视程序等。

那’s all about 春季靴 开发工具。


导入联系人

您可能还喜欢:

相关文章

  • 1月11日

    春季靴 JDBC示例

    在本文中,我们将看到Spring 开机 JDBC示例。众所周知,Spring Boot会执行许多自动配置,这有助于我们避免大量样板代码。对于JDBC,spring 开机提供了自动配置,例如根据application.properties自动创建DataSource和JDBCTemplate对象。所以你只需要[…]

  • 12月26日

    春季靴 H2数据库示例

    在这篇文章中,我们 are going to see how to create 春季靴 application integrating with H2 database. What is H2 database? H2 is open source database. It is very fast and smaller in size. It is in-memory database and keeps all data in memory. If you start and stop the application, all the data […]

  • 12月22日

    春季靴 Crud存储库

    在这篇文章中,我们’我将寻找如何创建和使用Spring Boot Crud存储库。 弹簧Boot CrudRepository为您要管理的实体类型提供了完善的CRUD功能。该接口主要用作标记接口,以捕获要使用的类型并帮助您发现扩展此[…]

  • 4月10日

    弹簧和Spring Boot之间的区别

    在这篇文章中,我们 will see difference between 弹簧 and 春季靴. If you have followed 弹簧 project over time, you might have noticed it has become increasingly complex. If you want to create a 弹簧 application, you still need to put a lot of efforts. 春季靴 is introduced to save time to 开机strap […]

  • 9月17日

    春季靴 SOAP Web服务示例

    在这篇文章中,我们 will see how to create soap web services with 春季靴. We will create contract first soap web service with 春季靴. We will focus on how to define 组态s for soap web services. Tools used JDK 1.8, Eclipse, Maven 弹簧-boot – Underlying application framework wsdl4j – for publishing WSDL for our […]

  • 8月08

    春季靴配置文件示例

    在本教程中,我们将看到有关Spring引导配置文件的信息。需要概要文件应用程序开发是一个复杂的过程。您可能具有用于应用程序开发的不同环境。开发SIT QA产品我们需要根据环境进行不同的配置。例如:使用不同的数据库或不同的队列。让’创建一个简单的spring 开机应用程序。步 […]

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。