SpringBoot总结(七)--spring-boot-devtools核心功能

原文链接

当然 Spring Boot 不是为了取代 Spring,Spring Boot 基于 Spring 开发,是为了让人们更容易的使用 Spring。看到 Spring Boot 的市场反应,Spring 官方也非常重视 Spring Boot 的后续发展,已经将 Spring Boot 作为公司最顶级的项目来推广,放到了官网上第一的位置,因此后续 Spring Boot 的持续发展也被看好。

Spring Boot 特性

使用 Spring 项目引导页面可以在几秒构建一个项目
方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks
非常简洁的安全策略集成
支持关系数据库和非关系数据库
支持运行期内嵌容器,如 Tomcat、Jetty
强大的开发包,支持热启动
自动管理依赖
自带应用监控
支持各种 IED,如 IntelliJ IDEA 、NetBeans
Spring Boot 这些特性会给我们研发带来非常大的优势,下面我们可以分开来介绍。

使用 Spring Boot 的优势
使用 Spring Boot 开发项目,会给我们带来非常美妙的开发体验,可以从以下几个方面展开来说明:

Spring Boot 让开发变得更简单
构建开发环境
Spring Boot 对开发效率的提升是全方位的,我们可以简单做一下对比:

》在没有使用 Spring Boot 之前我们开发一个 Web 项目需要做哪些工作:

1)配置 web.xml,加载 Spring 和 Spring mvc
2)配置数据库连接、配置 Spring 事务
3)配置加载配置文件的读取,开启注解
4)配置日志文件

n) 配置完成之后部署 Tomcat 调试
可能你还需要考虑各个版本的兼容性,Jar 包冲突的各种可行性。

》那么使用 Spring Boot 之后我们需要开发一个 Web 项目需要哪些操作呢?

1)登录网址 http://start.spring.io/ 选择对应的组件直接下载
2)导入项目,直接开发
上面的 N 步和下面的 2 步形成巨大的反差;

Spring DevTools

Spring Boot 还专门提供了一个组件包:Spring DevTools, DevTools 包括一组额外的工具,可以使应用程序开发体验更加愉快。spring-boot-devtools 为应用提供一些开发时特性,包括默认值设置,自动重启,livereload 等。

1、属性默认值

Spring Boot 支持的一些库中会使用缓存来提高性能,例如模版引擎将缓存编译后的模板,以避免重复解析模板文件。 此外,Spring mvc 可以在服务静态资源时向响应中添加 HTTP 缓存头。

虽然缓存在生产中非常有益,但它在开发过程中可能会产生反效果,它会阻止你看到刚刚在应用程序中进行的更改。 因此,spring-boot-devtools 将默认禁用这些缓存选项。

2、自动重启

在使用了 spring-boot-devtools 依赖包的 Spring Boot 项目,我们只需要简单配置就可以让项目具有自动重启的功能,这样我们在开发过程中调试代码就变得更加高效和自然。

自动重启的原理在于 Spring Boot 使用两个 classloader:不改变的类(如第三方jar)由 base 类加载器加载,正在开发的类由 restart 类加载器加载。应用重启时,restart 类加载器被扔掉重建,而 base 类加载器不变,这种方法意味着应用程序重新启动通常比“冷启动”快得多,因为 base 类加载器已经可用并已填充。所以,当我们开启 devtools 后,classpath 中的文件变化会导致应用自动重启.

》单纯的文字不好理解,来一个演示:

1、登录网址
https://start.spring.io/
2、填写 web,devtools 组件
回车生成一个springboot 项目

23

猜你喜欢

转载自blog.csdn.net/lsx2017/article/details/114005518