SpringBoot的基础应用
SpringBoot基础应用
SpringBoot特征
什么是SpringBoot
SpringBoot是一种全新框架,其设计目的是用来简化Spring 应用的创建、运行、调试、部署等。使用SpringBoot 可以做到专注于 Spring 应用的开发,而无需过多关注XML的配置。SpringBoot使用“约定优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用 SpringBoot 可以不用或者只需要很少的 Spring 配置就可以让企业项目快速运行起来。
特征
- 将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的 Maven 或 Gradle 构建中
- 使编码变得简单,SpringBoot 采用 JavaConfig 的方式对 Spring 进行配置,并提供了大量的注解,极大的提高了工作效率
- 自动配置,利用了 Spring 对条件化配置的支持,合理地推测应用所需 bean 并自动化配置他们
- 使部署变得简单,内置三种 Servlet 容器,只需要一个 Java 的运行环境就可以跑 SpringBoot 的项目了。
SpringBoot热部署
在通过引入 spring-boot devtools 插件的情况下,可以实现不重启服务器,对项目进行即时编译
添加依赖
1 |
|
原理
在编辑器启动项目并改动相关的代码,则编辑器自动触发编译,替换旧的 .class 文件后,项目检测到有文件变更后会重启 spring-boot 项目。内部主要是通过引入的插件对我们的 classpath 资源变化进行监听,当其变化时,才会触发重启
且有两种类加载器,对第三方 jar 包采用 baseclassloader 来加载,而对开发人员开发的代码则使用 restartclassloader 来进行加载,重启时只需要重启开发人员编写的代码部分即可
排除资源
默认情况下,改变资源 /META-INF/maven , /META-INF/resources , /resources , /static , /public ,或 /templates 不触发重新启动,但确会触发现场重装。如果要自定义这些排除项,则可以使用该 spring.devtools.restart.exclude 属性。例如,仅排除 /static , /public 在 application.properties 设置以下属性。
spring.devtools.restart.exclude=static/,public/,config/**
配置文件优先级
- /config/application.properties
- /application.properties
- /src/main/resources/config/application.properties
- /src/main/resources/application.properties
自定义 application.properties 配置文件注入 IOC 容器
1 |
|