什么是SpringBoot?
SpringBoot是一个社区反馈推动的项目. SpringBoot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一。SpringBoot主要包含以下特性:
1.直接嵌入Tomcat, Jetty或者Undertow作为Servlet container。从此之后再也不用将应用程序打包成war然后上传到application server里面了。
2.提供了starter POM, 能够非常方便的进行包管理, 很大程度上减少了jar hell或者dependency hell。
3.自动进行Spring框架的配置,节省程序员大量的时间和精力,能够让程序员专注在业务逻辑代码的编写上。
4.不需要任何第三方系统, SpringBoot自带了可以用于生产环境的程序状态信息和健康状态。
5.同时可以让应用程序非常方便的读取外部的配置信息,完全不需要任何代码的自动生成。更不需要用xml来进行框架的配置 。
创建SpringBoot项目的三种方式.
1) 通过IDEA或者Eclipse的Spring Initializer创建.
2) 访问 http://start.spring.io/ 创建SpringBoot的骨架.
3) 自己手动搭建.
1.创建Hello类
2.启动 main 方法
3.结果
SpringBoot的热部署
SpringBoot应用的热部署:
除了使用JRebel来实现热部署,还可以使用Springboot提供的spring-boot-devtools包来完成SpringBoot应用热部署;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
1)原理:
SpringBoot重启是reload重启,通过监控classpath的变化,如果classpath中的文件发生变化,即触发重启。SpringBoot通过两个classpath来完成reload,一个basic classloader中加载不变的类,一个restart classloader中加载classpath中的类,重启的时候,restart classloader中的类丢弃并重新加载;
2)排除资源:
spring.devtools.restart.exclude=static/**,templates/**
spring.devtools.restart.additional-exclude=public/** (处理默认配置排除之外的)
spring.devtools.restart.enabled=false (禁用自动重启)
3)可以使用triggerfile的重启策略:
spring.devtools.restart.triggerFile=trigger.file
注意这个文件不要放到default_excludes目录下面