1 Spring Boot介绍
Spring让Java程序更加快速, 简单和安全. Spring对于速度、简单性和⽣产⼒的关注使其成为世界上最流⾏的Java框架。
这些项⽬都是基于Spring Framework来进⾏开发的, 但是Spring Framework存在配置多, ⼊⻔难的问题, Spring 也意识到了这个问题, 为了简化开发者的使⽤, 从⽽创造性的推出了SpringBoot.
⽽ Spring Boot 就是 Spring 框架的脚⼿架,它是为了快速开发 Spring 框架⽽诞⽣的
2 Spring Boot 项⽬创建
2.1 使⽤ Idea 创建 Spring Boot 项⽬.
1.若为非专业版IDEA请安装IDEA插件
2.创建SpringBoot项⽬
接下来我们来创建 Spring Boot 项⽬:
File -> New ->Project
类似Spring官网
上图说明
① SpringBoot版本 , 选择任意3.X的, 这个版本会随着SpringBoot的升级⽽发⽣变化, 不固定
3.X版本使⽤的是jdk17, 3.X以下使⽤的是JDK8
② 打勾表⽰创建项⽬之初, 就引⼊的第三⽅依赖(框架, 插件, 组件等...)
点击 Create 就完成 Spring Boot 的项⽬创建了。
注意事项
第⼀次打开 Spring Boot 项⽬需要加载很久,因为当前 Spring Boot 框架并没有在⾃⼰的本地仓库. 为了加速 Spring Boot 项⽬的下载,在打开项⽬之前,请先确认⾃⼰的 Maven 已经配置为国内源,见博主上一篇Maven安装与配置
3 项⽬代码和⽬录介绍
观察pom⽂件
<?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 https://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>3.3.7</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.zzl</groupId><artifactId>springboor-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>springboor-demo</name><description>springboor-demo</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
pom⽂件中, 引⼊了两个依赖
• spring-boot-starter-web:包含了web应⽤开发所需要的常⻅依赖
• spring-boot-starter-test:包含了单元测试所需要的常⻅依赖
Spring Boot 项⽬有两个主要的⽬录:
• src/main/java: Java 源代码
• src/main/resources: 为静态资源或配置⽂件:
◦ /static:静态资源⽂件夹, ⽐如前期学的js, css, html等静态⽂件, 不需要服务器数据进⾏绑定的
⻚⾯
◦ /templates:模版资源⽂件夹, 主要存放动态模板⽂件, ⽐如JSP, Freemarker, Thymeleaf等需要服务器动态渲染数据的⽂件
• src/test/java: 测试代码源代码
• target: 编译后的⽂件路径
• pom.xml: maven 配置⽂件
可以删除无关文件,只留下src文件和pom文件
4 运⾏项⽬
点击启动类的 main ⽅法就可以运⾏ Spring Boot 项⽬了,启动成功如下图所⽰:
5 输出 Hello world
我们的Java EE课程, 更多是围绕着如何使⽤Java来进⾏web开发.
咱们前⾯的课程中, 讲的是Java基础, 是没办法直接和浏览器进⾏互动的. 所以接下来我们要⽤ Spring
Boot 来实现和浏览器及⽤⼾的交互。
在创建的项⽬包路径下创建 UserController ⽂件,实现代码如下:
注意:
package com.zzl.springboordemo;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping@RestController
public class HelloWorld {@RequestMapping("/hello")public String sayHello() {return "Hello World";}
}
重新启动项⽬,访问 http://127.0.0.1:8080/hello 最终效果如下:
package com.zzl.springboordemo;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping@RestController
public class HelloWorld {@RequestMapping("/hello")public String sayHello() {return "Hello World";}
}
6 Web服务器
浏览器和服务器两端进⾏数据交互, 使⽤的就是HTTP协议
前⾯我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客⼾端和 HTTP 服务器之间的交互数据的格式.
Web 服务器就是对HTTP协议进⾏封装, 程序员不需要直接对协议进⾏操作(⾃⼰写代码去解析http协议规则),让Web开发更加便捷, 所以Web服务器也被称为WWW服务器, HTTP服务器, 主要功能是提供⽹
上信息浏览服务.
常⻅的Web服务器有: Apache,Nginx, IIS, Tomcat, Jboss等
SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏
Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080
7 请求响应流程分析
浏览器输⼊URL之后, 发起请求, 就和服务器之间建⽴了连接
服务器:
浏览器:
• 输⼊⽹址:http://127.0.0.1:8080/hello
◦ 通过IP地址127.0.0.1定位到⽹络上的⼀台计算机, 127.0.0.1就是本机
◦ 通过端⼝号8080找到计算机上对应的进程 , 也就是在本地计算机中正在运⾏的8080端⼝的程序
◦ /user/sayhi是请求资源位置
▪ 资源:对计算机⽽⾔资源就是数据
• web资源:通过⽹络可以访问到的资源(通常是指存放在服务器上的数据)
http://127.0.0.1:8080/user/sayhi ,就是向本地计算机中的8080端⼝程序,获取资源位置是/user/sayhi的数据
8080端⼝程序,在服务器找/hello位置的资源数据,发给浏览器
服务器:
• 接收到浏览器发送的信息(如:/user/sayhi)
• 在服务器上找到/user/sayhi的资源
• 把资源发送给浏览器
8 访问出错怎么办
8.1 404
404 表⽰⽤⼾访问的资源不存在. ⼤概率是 URL 的路径写的不正确.
错误实例1: url单词拼错
错误实例2: 注解写错
@Controller
public class UserController {
@RequestMapping("/sayHi")
public String sayHi(){
return "hello,Spring";
}
}
访问时也会报错404
通过Fiddler观察Http请求
8.2 500
服务器出现内部错误. ⼀般是服务器的代码执⾏过程中遇到了⼀些特殊情况(服务器异常崩溃)会产⽣这
个状态码.
错误实例:
@RestController
public class UserController {
@RequestMapping("/sayHi")
public String sayHi(){
int res = 10/0;
return "hello,Spring";
}
}
重启 Tomcat 服务器.
重新访问⻚⾯, 可以看到:
3.8.3 ⽆法访问此⽹站
⼀般是 Tomcat 启动失败了.
打开Fiddler的话, 界⾯如下
4. 总结
Spring Boot 是为了快速开发 Spring ⽽诞⽣的, Spring Boot 具备:
• Spring Boot 提供了启动添加依赖的功能, 可以快速集成框架.
• 内置web服务器,⽆需配置 Tomcat 等 Web服务器,直接运⾏和部署程序.
• 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发.
• ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点.
Spring Boot 可使⽤ Idea 或⽹⻚创建,它的设计思想是约定⼤于配置,类上标注@SpringBootApplication 就可以启动 Spring Boot 项⽬了