Spring Boot从入门到精通【一】

👨‍💻作者:大二计算机学生

🏠主页:悄咪咪的关注小周 (●'◡'●)

📌关键:Spring Boot 企业开发 框架

🔊学习:[订阅 Spring Boot 专栏🚥]

大家好,我是小周,周棋洛的周,Spring Boot框架对于Java程序员至关重要,因此我把自己学习这个框架的笔记进行整理写成专栏,简洁易懂保姆级专栏,文章会不断修补完善,有喜欢的小伙伴可以订阅学习呀┗|`O′|┛ 嗷~~ 如果觉得文章写的不错,三联支持可怜的博主呀 ⭐🌟

文章目录

  • [1. 写在前面](#1. 写在前面)
  • [2. 一句话介绍Spring Boot](#2. 一句话介绍Spring Boot)
  • [3. Spring Boot优点](#3. Spring Boot优点)
  • [4. Spring Boot-Hello World](#4. Spring Boot-Hello World)
    • [3.1 创建maven项目](#3.1 创建maven项目)
    • [3.2 pom中引入Spring Boot的父级依赖](#3.2 pom中引入Spring Boot的父级依赖)
    • [3.3 引入spring-boot-starter-web做web开发](#3.3 引入spring-boot-starter-web做web开发)
    • [3.4 创建主程序](#3.4 创建主程序)
    • [3.5 编写业务代码](#3.5 编写业务代码)
    • [3.6 测试](#3.6 测试)
    • [3.7 打包部署](#3.7 打包部署)
  • [5. 写在最后](#5. 写在最后)

1. 写在前面

本文一共四千六百字,读完预计8分钟,你将会学习Spring Boot 是什么?有什么优点或特点,以及使用Maven创建第一个Spring Boot项目,完成Hello World业务的开发,最后测试,并使用Spring Boot独特的打包插件,打成jar包,使用 java -jar 包名启动Spring Boot应用。快开始吧!

2. 一句话介绍Spring Boot

快速创建和开发生产级别的Spring应用

3. Spring Boot优点

🔹 快速创建独立Spring应用

🔹 内嵌web服务器,tomcat

🔹自动starter依赖,简化构建配置

🔹自动配置Spring以及第三方功能

🔹无代码生成、无需编写XML

🔹提供生产级别的监控、健康检查及外部化配置

4. Spring Boot-Hello World

以下是基于Maven创建的,开始之前首先检查以下环境是否已经安装配置

Maven使用国内阿里云镜像,jdk版本使用8

xml 复制代码
<mirrors>
      <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
      </mirror>
</mirrors>
 
<profiles>
       <profile>
            <id>jdk-1.8</id>
            <activation>
              <activeByDefault>true</activeByDefault>
              <jdk>1.8</jdk>
            </activation>
            <properties>
              <maven.compiler.source>1.8</maven.compiler.source>
              <maven.compiler.target>1.8</maven.compiler.target>
              <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
       </profile>
</profiles>

项目简介,浏览器发送一个/hello请求,服务器返回一个Hello World字符串

3.1 创建maven项目

创建空的maven项目,下一步

输入项目名helloworld,组坐标com.liu一般使用公司域名反写,确认jdk版本无误后,完成

3.2 pom中引入Spring Boot的父级依赖

spring-boot-starter-parent是项目启动器,它为应用程序提供了默认配置。 所有依赖项都在内部使用它,所有的Spring Boot项目在pom.xml文件中都将spring-boot-starter-parent用作父项。

xml 复制代码
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.liu</groupId>
    <artifactId>helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!--先引入spring boot项目的父级配置,控制版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>
    
</project>

3.3 引入spring-boot-starter-web做web开发

在pom.xml配置文件中引入进行web开发所需的依赖spring-boot-starter-web,完了记得刷新载入依赖

xml 复制代码
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.liu</groupId>
    <artifactId>helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!--先引入spring boot项目的父级配置,控制版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>

    <!--引入web开发依赖 spring-boot-starter-web-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
</project>

打开依赖项,可以看到starter自动帮我们引入了与web开发相关的依赖,比如tomcat,springmvc,json......

3.4 创建主程序

在maven的Java目录下编写后端代码,首先创建com.liu.boot包,在这个包下创建Spring Boot应用启动类MainApplication.java,编写以下代码,注释已经写好

java 复制代码
package com.liu.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * @SpringBootApplication :用来标志这是Spring Boot应用的启动类
 */
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        /*启动应用,传入启动类字节码文件,以及main参数*/
        SpringApplication.run(MainApplication.class, args);
    }
}

3.5 编写业务代码

创建com.liu.boot.controller包,在这个包下编写控制器类,起名叫HelloContrller,编写以下代码,对于/hello的请求,后端返回字符串Hello World

java 复制代码
package com.liu.boot.controller;

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

//@Controller
//@ResponseBody

//新注解,它整合了@Controller和@ResponseBody注解
@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String test() {
        return "Hello World";
    }
}

3.6 测试

直接启动main方法,spring-boot-starter-web内置了tomcat9容器

浏览器访问http://localhost:8080/hello,可以看到浏览器响应如下:

3.7 打包部署

想要可执行 jar,我们需要将spring-boot-maven-plugin添加到pom.xml,因为它和maven打包有所区别,引入覆盖maven的打包配置

xml 复制代码
<!--引入 spring boot 相关插件-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

然后执行 cleanpackage 命令即可

打包完成,找到打好的jar包,我把jar包复制到了桌面:

然后进入cmd,切换至桌面,使用java -jar jar包名回车直接运行,这里注意,cmd中使用table可以快速联想,比如本例中,我在运行时只需要输入java -jar hello table键就会自动查找补全文件名

成功在8080端口跑起来了,访问

5. 写在最后

完美,是不是很轻松呢?我是小周,周棋洛的周,Spring Boot框架对于Java程序员至关重要,因此我把自己学习这个框架的笔记进行整理写成专栏,简洁易懂保姆级专栏,文章会不断修补完善,有喜欢的小伙伴可以订阅学习呀┗|`O′|┛ 嗷~~ 如果觉得文章写的不错,三联支持可怜的博主呀 ⭐🌟

相关推荐
小灰灰__15 分钟前
IDEA加载通义灵码插件及使用指南
java·ide·intellij-idea
夜雨翦春韭19 分钟前
Java中的动态代理
java·开发语言·aop·动态代理
程序媛小果39 分钟前
基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
java·vue.js·spring boot
追风林1 小时前
mac m1 docker本地部署canal 监听mysql的binglog日志
java·docker·mac
芒果披萨1 小时前
El表达式和JSTL
java·el
duration~2 小时前
Maven随笔
java·maven
zmgst2 小时前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
跃ZHD2 小时前
前后端分离,Jackson,Long精度丢失
java
blammmp2 小时前
Java:数据结构-枚举
java·开发语言·数据结构
暗黑起源喵3 小时前
设计模式-工厂设计模式
java·开发语言·设计模式