快速入门SpringBoot
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程
快速入门
1.新建module界面
2.勾选Web下的SpringWeb,有关SpringMVC的依赖,点击Finish
3.编写一个简单的业务层代码
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping
public String getById(){
System.out.println("spring boot is running");
return "spring boot is running";
}
}
4.启动SpringBootApplication.java启动类
5.访问URL:http://localhost:8080/books
SpringBoot入门程序的基础文件
pom.xml
Application类
SpringBoot与Spring对比
类/配置文件 | SpringBoot | Spring |
---|---|---|
pom文件中的坐标 | 勾选添加 | 手工添加 |
web3.0配置类 | 无 | 手工制作 |
Spring/SpringMVC配置类 | 无 | 手工制作 |
控制器 | 手工制作 | 手工制作 |
官网创建并导入SpringBoot项目
1.官网地址https://start.spring.io
2.在官网创建项目,并获取压缩包。
3.解压到本地工作目录下
阿里云创建SpringBoot
修改Server URL为:http://start.aliyun.com
非联网方式创建项目
1.首先,确保maven仓库内由如下依赖,手动创建Maven项目并编写好pom.xml文件
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zut</groupId>
<artifactId>springboot_01_03_quickstart</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>
2.编写启动类
@SpringBootApplication//必要的注解
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3.编写controller,通过浏览器访问即可
入门案例解析
■Parent
SpringBoot的可以使用parent依赖管理< dependency-manager >将我们需要用的依赖进行了版本控制。
当Parent中没有引入某些依赖而你需要该依赖,仍需自行指定版本,注意版本冲突问题。
我们引入依赖时直接使用父项目给的版本即可,达到版本统一的效果。
官网采用继承父依赖,而阿里云采用的是引用父依赖。继承仅有一次。
注:不同的SpringBoot版本所对应的各种依赖版本不同
■Starter(SpringBoot的依赖传递)
每个Starter中引入了相关技术所涉及的依赖,我们只要根据技术选择Starter引用即可。
■引导类Application
引导类中的main方法,我们获取以下方法的返回值可以发现:
ConfigurableApplicationContext run = SpringApplication.run(Application.class, args);
ConfigurableApplicationContext:context上下文对象,即配置文件。
ConfigurableApplicationContext run = SpringApplication.run(Application.class, args);
BookController bean = run.getBean(BookController.class);
System.out.println(bean);
//com.zut.controller.BookController@5e76a2bb
容器的初始化工作和配置工作,由Application完成。
注:默认情况下的注解扫描范围是启动类所在包及其子包。
■启动Tomcat的原理
1.打开pom.xml,找到spring-web的starter并进入
2.找到tomcat的starter进入
3.里面会有内嵌的tomcat依赖
去除tomcat测试
1.排除tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
2.启动项目
tomcat服务器不再启动。
3.更换jetty服务器测试
<!--引入jetty-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
SpringBoot的三个内置服务器
tomcat
apache出品,粉丝多,应用面广,负载了若干较重的组件。
jetty
Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎 (GAE) 已经全面切换为Jetty ,负载性能远不及tomcat
undertow
undertow,负载性能勉强跑赢tomcat