背景:
为啥要用SpringBoot?
当前互联⽹后端开发中,JavaEE占据了主导地位。对JavaEE开发,⾸选框架是Spring框架。在传统的
Spring开发中,需要使⽤⼤量的与业务⽆关的XML配置才能使Spring框架运⾏起来,这点备受许多开发
者诟病。随着Spring4.x发布,Spring已经完全脱离XML,只使⽤注解就可以运⾏项⽬。为了进⼀步简化
Spring应⽤的开发,SpringBoot诞⽣了。它是由Pivotal团队提供的全新框架,其设计⽬的是简化Spring
应⽤的搭建及开发过程,并迎合时下流⾏的分布式微服务设计思想,越来越多企业在使⽤SpringBoot。(敏捷开发)
核心能力:
核⼼能⼒:Spring容器、⽇志、⾃动配置AutoCongfiguration、Starters
web应⽤的能⼒:MVC、嵌⼊式Web服务器
数据访问(持久化):关系型数据库(mysql)、⾮关系型数据库(redis)
强⼤的整合其他技术的能⼒
测试:强悍的应⽤测试
来一个简单的SpringBoot搭建demo:
0创建好maven工程
1pom.xml配置好SpingBoot
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--继承SpringBoot⽗POM⽂件-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
</parent>
<groupId>com.kkb</groupId>
<artifactId>SpringBoot_hw</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
<dependencies>
<!--web 开发的相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
2编写SpringBoot引导类
@RestController
public class HelloController {
@RequestMapping("/hello")
public String sayHello(String name){
return "hello "+name;
}
}
3编写controller代码
@RestController
public class HelloController {
@RequestMapping("/hello")
public String sayHello(String name){
return "hello "+name;
}
}
4测试
http://localhost:8080/hello?name=“springboot”
成功界面会呈现 hello springboot
SpringBoot原理分析
1 starters的原理
starters是依赖关系的整理和封装。是⼀套依赖坐标的整合,可以让导⼊应⽤开发的依赖坐标更⽅便。
利⽤依赖传递的特性:帮你把依赖打包了,starter
搞框架:
导包 == starter
配置⽂件 == AutoConfiguration
new对象
有了这些Starters,你获得Spring和其整合的所有技术的⼀站式服务。⽆需配置(⾃动配置)、⽆需复制粘
贴依赖坐标,⼀个坐标即可完成所有⼊⻔级别操作。举例:Web开发,只需要导⼊ spring-bootstarter-web 。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
每个Starter包含了当前功能下的许多必备依赖坐标,这些依赖坐标是项⽬开发,上线和运⾏必须的。同
时这些依赖也⽀持依赖传递。举例: spring-boot-starter-web 包含了所有web开发必须的依赖坐标,如spring-web,spring-mvc等等。
2依赖管理的原理
依赖管理(Dependency Management)
- 继承了 spring-boot-starter-parent 的好处和特点
默认编译Java 1.8
默认编码UTF-8
通过spring-boot-denpendencies的pom管理所有公共Starter依赖的版本
spring-boot-denpendencies通过Maven的⼀个特性来实现版本管理
随⽤随取,不⽤继承⽗类所有的starter依赖。 - POM⽂件中的Maven插件
<!-- 作⽤:将⼀个SpringBoot的⼯程打包成为可执⾏的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果想使⽤⽗pom⽂件中的任何插件,⽆需配置即可使⽤
yml文件修改端口号
在resourses文件夹下
application.yml
server:
port: 9090