第一个SpringBoot程序
目录介绍
当我们创建了一个SpringBoot项目之后,会出现如下的目录结构
SpringBoot项⽬有两个主要的⽬录:
-
src/main/java: Java源代码
-
src/main/resources:为静态资源或配置⽂件:
- /static:静态资源⽂件夹,⽐如前期学的js,css,html等静态⽂件,不需要服务器数据进⾏绑定的 ⻚⾯
- /templates:模版资源⽂件夹,主要存放动态模板⽂件,⽐如JSP,Freemarker,Thymeleaf等需 要服务器动态渲染数据的⽂件
-
src/test/java:测试代码源代码
-
target:编译后的⽂件路径
-
pom.xml:maven配置⽂件
运行项目
点击启动类的main⽅法就可以运⾏SpringBoot项⽬了,启动成功如下图所⽰:
输出Helloworld
⽤Spring Boot来实现和浏览器及⽤⼾的交互。
在创建的项⽬包路径下创建UserController⽂件,实现代码如下:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@RequestMapping("/sayHi")
public String sayHi(){
return "hello,Spring";
}
}
重新启动项⽬,访问http://127.0.0.1:8080/sayHi最终效果如下:
Web服务器
浏览器和服务器两端进⾏数据交互,使⽤的就是HTTP协议
HTTP协议就是HTTP客⼾端和HTTP服务器之间的交互数据 的格式.
Web服务器就是对HTTP协议进⾏封装,程序员不需要直接对协议进⾏操作(⾃⼰写代码去解析http协议 规则),让Web开发更加便捷,所以Web服务器也被称为WWW服务器, HTTP服务器,主要功能是提供⽹ 上信息浏览服务.
常⻅的Web服务器有:Apache,Nginx,IIS,Tomcat,Jboss等
SpringBoot内置了Tomcat服务器,⽆需配置即可直接运⾏
Tocmat默认端⼝号是8080,所以我们程序访问时的端⼝号也是8080
请求响应流程分析
浏览器输⼊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的资源
- 把资源发送给浏览器
创建访问错误:
-
4xx的状态码表⽰路径不存在,往往需要检查URL是否正确,和代码中设定的ContextPath以及 ServletPath是否⼀致.
-
5xx的状态码表⽰服务器出现错误,往往需要观察⻚⾯提⽰的内容和Tomcat⾃⾝的⽇志,观察是否 存在报错.
-
出现连接失败往往意味着服务没有正确启动,也需要观察服务的⾃⾝⽇志是否有错误提⽰.
学习框架一定要多动手,积累经验,积累熟练度
总结
SpringBoot是为了快速开发Spring⽽诞⽣的,SpringBoot具备:
- SpringBoot提供了启动添加依赖的功能,可以快速集成框架.
- 内置web服务器,⽆需配置Tomcat等Web服务器,直接运⾏和部署程序.
- 可以完全抛弃繁琐的XML,使⽤注解和配置的⽅式进⾏开发.
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点.
成框架.
- 内置web服务器,⽆需配置Tomcat等Web服务器,直接运⾏和部署程序.
- 可以完全抛弃繁琐的XML,使⽤注解和配置的⽅式进⾏开发.
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点.
SpringBoot可使⽤Idea或⽹⻚创建,它的设计思想是约定⼤于配置,类上标注 @SpringBootApplication就可以启动SpringBoot项⽬了.