第一个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项⽬了.

相关推荐
这孩子叫逆6 分钟前
Spring Boot项目的创建与使用
java·spring boot·后端
星星法术嗲人9 分钟前
【Java】—— 集合框架:Collections工具类的使用
java·开发语言
一丝晨光28 分钟前
C++、Ruby和JavaScript
java·开发语言·javascript·c++·python·c·ruby
天上掉下来个程小白30 分钟前
Stream流的中间方法
java·开发语言·windows
Jay_fearless39 分钟前
Redis SpringBoot项目学习
spring boot·redis
xujinwei_gingko41 分钟前
JAVA基础面试题汇总(持续更新)
java·开发语言
liuyang-neu43 分钟前
力扣 简单 110.平衡二叉树
java·算法·leetcode·深度优先
一丝晨光1 小时前
Java、PHP、ASP、JSP、Kotlin、.NET、Go
java·kotlin·go·php·.net·jsp·asp
罗曼蒂克在消亡1 小时前
2.3MyBatis——插件机制
java·mybatis·源码学习
_GR1 小时前
每日OJ题_牛客_牛牛冲钻五_模拟_C++_Java
java·数据结构·c++·算法·动态规划