第一个SpringBoot程序

第一个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⽂件,实现代码如下:

Java 复制代码
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之后,发起请求,就和服务器之间建⽴了连接

服务器

浏览器

服务器:

  • 接收到浏览器发送的信息(如:/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项⽬了.

相关推荐
我会冲击波4 分钟前
告别flag与status:如何为你的布尔值(boolean)变量优雅命名?
java·后端
工藤学编程10 分钟前
分库分表之实战-sharding-JDBC水平分库+分表后:查询与删除操作实战
数据库·spring boot·后端·sql·mysql
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ11 分钟前
如何将一个本地的jar包安装到 Maven 仓库中
java·maven·jar
N维世界19 分钟前
Mybatis-XML映射文件
xml·java·mybatis
码出极致21 分钟前
Redisson 分布式锁自动续期机制解析
后端
小塵22 分钟前
【DeepSeek 聊天】五分钟部署本地 DeepSeek
人工智能·后端·deepseek
土拨鼠的旅程25 分钟前
Go map 源码详解【2】—— map 插入
后端
泊浮目28 分钟前
生产级Rust代码品鉴(一)RisingWave一条SQL到运行的流程
大数据·后端·rust
弹简特42 分钟前
【Java SE】Arrays工具类
java·开发语言
Touper.42 分钟前
JavaSE -- Lambda表达式
java·开发语言