SpringBoot(一)【入门】(1)

简介: SpringBoot(一)【入门】

前言

1、SpringBoot 快速入门

1.1、SpringBoot 简介

  • SpringBoot 是用来简化 Spring 应用的初始搭建以及开发过程

首先我们回顾一下 SpringMVC 项目的开发过程:

  1. 导入依赖(javax.servlet-api 和 spring-webmvc)
  2. Servlet 容器配置类(在这里设置 SpringMVC 来处理所有请求)
  3. SpringMVC 容器配置类
  4. 创建 Controller 类

1.2、SpringBoot 项目创建的两种方式

1.2.1、手动创建

这里我们不再是创建 Maven 工程了,而是创建一个 Spring Initialzr 项目:

58847c199f562dfa03d0923681c51254_7ce95b523e6147bfa46d460e633bf0d2.png

然后选择 SpringBoot 版本并勾选 SpringbWeb:

a3c632929b5052b7fdabfbad42f87595_7d4dab0c77ac4ff0bf19621432b51236.png

创建好工程后,我们只需要保留 src 目录和 pom.xml,别的文件都可以删了。

SpringBoot 程序并不需要像开发 SpringMVC 程序那样一上来先创建 ServletConfig、SpringMvcConfig 这些配置类,我们只需要写一个 Controller 类:

@RestController
@RequestMapping("/books")
public class BookController {
 
    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("id => " + id);
        return "hello springboot";
    }
 
}

接着写一个执行类:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

不用配置 Tomcat 直接执行,然后访问 local:8080/books/1

d042b4f2c288d8c21034447247a3925d_c8c07bb3bf7b440d92f49eecc722859e.png

查看控制台输出

恐怖如斯!!!我们啥都没干,就写了一个 Controller 类!!!

1.2.2、Spring 官网创建

打开 start.spring.io

下载项目之后,我们查看 pom.xml:

ec4b64717a46bcd7e3070244d40ab56f_c68acf288bed4261a5a4e95268eb8b9a.png

可以看到,和我们在 Idea 创建的项目 pom.xml 中的核心依赖是一样的,只不过这里的 SpringBoot 版本最低就是 3.2.4 ,JDK 版本必须 JDK17+。

1.3、SpringBoot 快速启动

       SpringBoot 程序可以不依赖 Tomcat 和 Idea 直接运行,但是数据库必须得有。所以前后端开发 Web 程序的过程中,后端程序员只需要给前端程序媛一个 jar 包和数据库建表语句即可。

打包 SpringBoot 项目:

重点是要有这个打包插件:

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <addResources>true</addResources>
                    <mainClass>com.lyh.Application</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

在 idea 用 package 打包程序,在 jar 包目录输入 cmd 使用 java -jar 命令执行并在浏览器访问 localhost:8080/books/1 :

30b9ea4f9ce84c357e63cc0bc1b4c3d8_21155684ed5b4d67b4a0a8092d6b0ccd.png

这样我们的项目就可以摆脱对 Idea 和 Tomcat 的依赖随处运行了。

1.4、起步依赖

       为什么 SpringBoot 可以帮我自动处理好依赖之间的关系,而使得我们几乎不需要自己导入任何依赖呢,这其实主要归功于它帮我把所有的依赖都导进来了:

SpringBoot 的三个核心依赖:

     <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>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

我们可以打开查看一下:

f3946315c43f19ab27a5eef4d1b70af2_bad87cda95484cdfb0c1f24462f9d14d.png

       可以看到,光是一个 spring-boot-dependencies 中帮我们管理了接近两百个依赖,而下面的 spring-boot-starter-web 和 spring-boot-starter-test 同样帮我们导入了 tomcat、servlet、springmvc 等依赖。

       所以 SpringBoot 的起步依赖通过帮我们来管理依赖,已达到减少依赖冲突的目的。

1.5、切换 Web 服务器

       上面我们打包的 SpringBoot 程序会内置一个 tomcat,所以我们可以在别的地方运行,这是因为  spring-boot-starter-web 帮我们导入了 tomcat 的依赖,但是如果我们不希望使用 tomcat 又该怎么办?tomcat 是内置的依赖,我们怎么排除掉?

    <!-- 排除tomcat依赖-->
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    <!-- 导入jetty依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
            <version>2.5.0</version>
        </dependency>

启动项目:

       所以,之后当遇到版本依赖需要替换依赖的情况我们都可以这么干!相比较 Tomcat,Jetty 更加轻量级,可扩展性更强。

SpringBoot(一)【入门】(2)https://developer.aliyun.com/article/1534227

相关文章
|
2月前
|
NoSQL Java Redis
SpringBoot的入门(一)
SpringBoot的入门(一)
|
2月前
|
Java API 容器
SpringBoot入门(十)
SpringBoot入门(十)
|
2月前
|
JSON Java 数据格式
SpringBoot入门(七)
SpringBoot入门(七)
|
2月前
|
JSON Java API
SpringBoot入门(八)
SpringBoot入门(八)
|
2月前
|
Java Spring 容器
SpringBoot的入门(三)
SpringBoot的入门(三)
|
2月前
|
Java 容器 Spring
SpringBoot入门(六)
SpringBoot入门(六)
|
2月前
|
监控 Java Spring
SpringBoot的入门(四)
SpringBoot的入门(四)
|
2月前
|
Java 应用服务中间件 nginx
SpringBoot入门(九)
SpringBoot入门(九)
|
2月前
|
消息中间件 NoSQL Java
SpringBoot的入门(五)
SpringBoot的入门(五)
|
5月前
|
Java 数据库连接 Maven