SpringBoot的底层原理
⼀,Spring Boot简介
1.什么是Spring Boot
Spring Boot是由Pivotal团队提供的框架,其设计⽬的是⽤来简化新Spring应⽤的初始搭建以及开发过程。
该框架使⽤了特定的⽅式(继承starter,约定优先于配置)来进⾏配置,从⽽使开发⼈员不再需要定义样板化的配置。通过这种⽅式,Boot 致⼒于在蓬勃发展的快速应⽤开发领域(rapid application development)成为领导者。
Spring Boot并不是⼀个框架,从根本上将,它就是⼀些库的集合,maven或者gradle项⽬导⼊相应依赖即可使⽤Spring Boot,⽽且⽆需⾃⾏管理这些库的版本。。
2.为什么要使⽤Spring Boot;
Spring Boot是为简化Spring项⽬配置⽽⽣,使⽤它使得jar依赖管理以及应⽤编译和部署更为简单。Spring Boot提供⾃动化配置,使⽤Spring Boot,你只需编写必要的代码和配置必须的属性。
使⽤Spring Boot,只需20⾏左右的代码即可⽣成⼀个基本的Spring Web应⽤,并且内置了tomcat,构建的fat Jar包通过Java -jar就可以直接运⾏。
如下特性使得Spring Boot⾮常契合微服务的概念,可以结合Spring Boot与Spring Cloud和Docker技术来构建微服务并部署到云端:
⼀个可执⾏jar即为⼀个独⽴服务很容易加载到容器,每个服务可以在⾃⼰的容器(例如docker)中运⾏
通过⼀个脚本就可以实现配置与部署,很适合云端部署,并且⾃动扩展也更容易
简单⽽⾔,即Spring Boot使编码更简单,使配置更简单,使部署更简单,使监控更简单。!
3 Spring Boot提供哪些功能
springboot框架的作用(1)⽆需⼿动管理依赖jar包的版本
Spring boot通过spring boot starter项⽬管理其提供的所有依赖的版本,当升级spring boot时,这些依赖的版本也会随之升级。个⼈⽆需指定版本号。
但是也可以⾃定义版本号覆盖springboot的默认值。每个版本的boot都有对应的base spring version,不建议明确地指定spring版本。
例如,使⽤maven时,只需简单的在pom中包含spring-boot-starter-web即引⼊了Spring MVC和Tomcat的依赖。
下⾯是Spring Boot在 org.springframework.boot 组下提供的⼀些Starters:
⼆,Spring boot⼊门
1.环境要求
开发环境JDK 1.8
项⽬管理⼯具( Maven )开发⼯具(Eclipse)
2.⼊门
(1)创建Maven项⽬
2.导⼊Spring Boot依赖
<!--
spring boot ⽗节点依赖,引⼊这个之后相关的引⼊就不需要添加version配置,spring boot会⾃动选择最合适的版本进⾏添加。 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
java.version 指定jdk版本号:
<java.version>1.8</java.version>
添加spring-boot-starter-web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 可执⾏jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3.编码测试
新建⼀个Controller类
新建启动类(App – Main⽅法)
测试代码
运⾏:App
4.热部署
即使修改了输出内容也要重启APP,⾮常⿇烦!可以使⽤spring-boot-devtools来实现!
1. 介绍
spring-boot-devtools 是⼀个为开发者服务的⼀个模块,其中最重要的功能就是⾃动应⽤代码更改到最新的App上⾯去。原理是在发现代码有更改之后,重新启动应⽤,但是速度⽐⼿动停⽌后再启动还要更快,更快指的不是节省出来的⼿⼯操作的时间。
其深层原理是使⽤了两个ClassLoader,⼀个Classloader加载那些不会改变的类(第三⽅Jar包),另⼀个ClassLoader加载会更改的类,称为  restart ClassLoader
,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建⼀个restart ClassLoader,由于需要加载的类相⽐较少,所以实现了较快的重启时间(5秒以内)
2)使⽤
添加依赖包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
三,Spring boot web
1.跳转Jsp

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。