初识SpringBoot

此文介绍一些有关我对SpringBoot的学习理解,
声明:此处我的IDEA是企业版的,可能和社区版会有一些差异

1. 第⼀个SpringBoot程序

1. SpringBoot介绍

我们看下Spring官方的介绍
在这里插入图片描述

可以看到,Spring让Java程序更加快速,简单和安全.Spring对于速度、简单性和生产力的关注使其成为世界上最流行的Java框架。
Spring官方提供了很多开源的项目,覆盖范围从Web开发到大数据,Spring发展到了今天,已经形成了自己的生态圈.我们在开发时,也倾向于使用Spring官方提供的技术,来解决对应的问题.
在这里插入图片描述
这些项目都是基于SpringFramework来进行开发的,但是SpringFramework存在配置多,入门难的问题,Spring也意识到了这个问题,为了简化开发者的使用,从而创造性的推出了SpringBoot.
Spring Boot的诞生是为了简化Spring程序开发的.

1.2 Spring Boot项⽬创建

1.2.1 项目创建方法

因为我使用的Idea企业版,可以直接创建
在这里插入图片描述
在这里插入图片描述

对于其他社区版的创建就相对麻烦了,先要安装SpringBootHelper插件才能创建Spring Boot 项目,但是官方已经不提供该插件的下载了,所以是社区版的小明们,可以下载一个企业版或者看看别的博主有没有相关解决办法
还有一种方式就是我们可以使用Spring官方提供的网页版来创建SpringBoot 项目
网页版创建项目先访问:网页创建SpingBoot项目
在这里插入图片描述

1.2.2 项目创建后目录

无论用那种方式创建,创建好之后的项目目录如下:
在这里插入图片描述
说明:
Spring Boot 项目有两个主要的目录:

  • src/main/java: Java源代码
  • src/main/resources: 为静态资源或配置⽂件:
    /static: 静态资源文件夹,比如js,css,html等静态文件,不需要服务器数据进行绑定的页面
    /templates: 模版资源文件夹,主要存放动态模板文件,比如JSP,Freemarker,Thymeleaf等需要服务器动态渲染数据的文件
  • src/test/java: 测试代码源代码
  • target: 编译后的文件路径
  • pom.xml: maven配置文件

1.2.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.4.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>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.xml文件里的具体信息,不需要过度关注,我们主要看<dependencies>标签⾥⾯的内容
pom文件中,引入了两个依赖

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖

1.2.4 pom文件涉及的父工程

我们发现,pom文件中这个依赖没有指定具体的版本号,但我们的jar包也正常引入到项目中了.并且查看的话,是有版本号的
在这里插入图片描述
在这里插入图片描述
并且我们发现本地的jar包也是下载下来的,那么为什么这里没有指定<version> ,程序也可以正常运行呢?
因为每⼀个SpringBoot工程,都有⼀个父工程.其依赖的版本号,在父工程中统⼀管理.
父工程指定版本号后,就会自动引入和所指定版本对应的依赖,创建的SpringBoot项目,会继承SpringBoot父工程.

在这里插入图片描述

1.2.5 运行第一个SpringBoot项目

在创建好一个SpringBoot项目后就会自动生成一个启动类,如下:

在这里插入图片描述
说明@SpringBootApplication是SpringBoot启动类注解

启动后效果图如下:

在这里插入图片描述

1.2.6 输出内容到浏览器页面

普通的Java类只能将结果输出到IDEA的控制台上,并不能在浏览器上有效果,不是我们想要的结果,所以我们要使用SpringBoot来实现和浏览器及用户的交互

在创建的项目包路径下创建UserController文件,实现代码如下:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello,my 1st spring boot project";
    }
}

重新启动项目,访问 http://127.0.0.1:8080/hello 最终效果如下:

在这里插入图片描述

1.2.7 Web服务器

浏览器和服务器两端进行数据交互,使用的就是HTTP协议
HTTP协议就是HTTP客户端和HTTP服务器之间的交互数据的格式.
Web服务器就是对HTTP协议进行封装,程序员不需要直接对协议进行操作(自己写代码去解析http协议规则),让Web开发更加便捷,所以Web服务器也被称为WWW服务器, HTTP服务器,主要功能是提供网上信息浏览服务.
常见的Web服务器有:Apache,Nginx,IIS,Tomcat,Jboss等
SpringBoot 内置了Tomcat服务器,无需配置即可直接运行
在这里插入图片描述
Tocmat默认端口号是8080,所以我们程序访问时的端口号也是8080

1.2.8 请求响应流程分析

浏览器输入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/hello,就是向本地计算机中的8080端口程序,获取资源位置是/user/hello的数据
  • 8080端口程序,在服务器找/hello位置的资源数据,发给浏览器

服务器:

  • 接收到浏览器发送的信息(如:/user/hello)
  • 在服务器上找到/user/hello的资源
  • 把资源发送给浏览器

1.2.9 常见的访问出错情况

1.2.9.1 404

404 表示用户访问的资源不存在.大概率是URL的路径写的不正确

情况1:单词拼写错误
在这里插入图片描述

情况2:注解错误

//注解错误
@Controller
public class UserController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello,my 1st spring boot project";
    }
}

在这里插入图片描述

1.2.9.2 500

服务器出现内部错误.⼀般是服务器的代码执行过程中遇到了些特殊情况(服务器异常崩溃)会产生这个状态码.

比如:

@RestController
public class UserController {
    @RequestMapping("/hello")
    public String hello(){
    //此处10/0 错误
        int a=10/0;
        return "hello,my 1st spring boot project";
    }
}

在这里插入图片描述

此时,程序后端控制台已经打印了具体的异常调用栈
在这里插入图片描述

1.2.9.3 无法访问此网站

⼀般是Tomcat启动失败了.

在这里插入图片描述

这种情况⼀般是服务未成功启动,也就是tomcat未启动,或者IP/端口写错

打开Fiddler的话,页面如下:
在这里插入图片描述

以上就是我对第一个springboot的理解和总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值