SpringBoot | 快速入门

简介: SpringBoot | 快速入门

一、SpringBoot快速入门


1.1 idea创建


(1)新建模块,选择Spring Initializer,一定要记得选择SpringBoot的版本为2.7.7


fa98d79ad529437dba096023ce1980ae.png

d8d32dcf4ab645f1857de901e72f6d7c.png62169a81a9a748888fa2b292e5be7b91.png


51efe39d2e814a888a3b10b4e463c11f.png


653046933a5847a4b43d6fadf5c478e1.png

注意上面的两个目录一定要是空目录,然后点击apply,OK即可,之后进入到主界面。

89a5258093ed4989874dab64d3faebdf.png


c5b974851ca746efab9b692a407cba13.png


(2)编写UserController类

package com.itxiaoguo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    public String selectById(@PathVariable Integer id) {
        System.out.println("id --> "+ id);
        return "id --> "+id;
    }
}



(3)运行Application并使用Postman测试


2e78516e364d4330bcb2498c78ec17bb.pnge8985de6bb9e4f08b932ab688991a439.png

a79fc13f08e14b1f99888ffc3df1f998.png


image.png

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

1.2 官网创建


点击Spring Initializer官网,选择要生成的项目骨架,下载解压下来。


fa32fd1e1ac246f1b1e400988cf45bab.png

0f0e46461d8244bb8035503e46bceac7.png


1.3 项目快速启动


启动方式 主类启动 maven指令启动 命令行启动
具体步骤 image.png image.png

image.png



二、SpringBoot简介


2.1 起步依赖starter


  <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>

pom文件中这些原本存在的、带有starter前缀的依赖称为起步依赖,通过起步依赖,SpringBoot项目一开始就导入了大量的依赖,定义了大量的依赖版本号,官方的starter一般都是spring-boot-starter-xxx的格式。


2.2 切换Web服务器


这里举例不使用默认的tomcat服务器,使用jetty服务器。

(1)启动tomcat时的日志信息

d6fd8d8a65a345969fff683249dfd844.png


(2)排除默认的tomcat,添加jetty起步依赖,之后刷新pom文件

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--            排除默认的tomcat -->
            <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>
        </dependency>


(3) 启动jetty时的日志信息

8cfe98fef82247b582d24ec001c0e7a1.png

三、基础配置


3.1 3种配置文件格式


SpringBoot项目默认的配置文件是application.properties,并且所有的配置文件都要以application-开头。 下面通过修改tomcat服务器端口的例子介绍三种配置文件的格式。


配置文件格式 .properties .yml(后续主要写) .yaml
优先级 1 2 3


9541468ea2d345428c3d29bc2a17887b.png

73f409563280423d911a299ce31417b4.png


b53a03d4df724fb19783775eb2511d3b.png


(1)查看tomcat使用的端口:

d26e80fe09da410ea0f59c7064212b59.png


(2)注释掉application.properties文件,查看端口:

7958c7df38314a818edb7048bfedd28a.png


由此可以得出优先级,properties文件大于yml文件大于yaml文件。

修改了配置文件后不生效,先更改下面的内容,再重启。


5a2cd42fb6654a05afd541a29161c4b2.png


3.2 yaml格式


YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。


ae3649cd0b4f459693f9078068b979fb.png

下面看使用yaml语法的例子


a43aca3eb6834b74a6df26933491b0bf.png


3.3 读取yaml文件数据的3种方式


方式 @Value读取 使用Environment对象+@AutoWired读取 定义一个Enterprise实体类


下面介绍三种方式的代码,再省略再Postman发送请求的过程。

server:
  port: 8080
#数组
test:
  hobby:
    - basketball
    - computer
    - house
#常量
id: 2
@Component
@ConfigurationProperties(prefix = "test")
public class Enterprise {
    private String[] hobby;
   // 省略getter、setter、有参、空参、toString()方法
}
@RestController
@RequestMapping("/users")
public class UserController {
//    1.直接获取yml文件的数据
    @Value("${id}")
    private Integer id;
    @Value("${server.port}")
    private String port;
//    2.通过Environment对象获取
    @Autowired
    private Environment environment;
    //    3.通过实体类获取
    @Autowired
    private Enterprise enterprise;
    @GetMapping
    public String selectAll() {
        System.out.println("--------1------");
        System.out.println("id --> " + id + ",port --> " + port);
        System.out.println("-------2-------");
        System.out.println("id --> " + environment.getProperty("id") + ",port --> " + environment.getProperty("server.port"));
        System.out.println("--------3------");
        System.out.println(enterprise);
        return "id --> " + id;
    }
}


81eafd51f5524eb5b3166eb8619d9f2b.png

四、多环境


4.1 多环境开发配置


环境配置方式 yaml文件配置多环境(推荐) properties文件设置多环境
使用方式 在yml文件中选择环境 每一个环境是独立的properties文件,根据文件名识别


# yml文件多环境开发配置(使用---将多个环境分开)
---
server:
  port: 81
spring:
  config:
    activate:
      on-profile: dev # 开发环境
---
server:
  port: 82
spring:
  config:
    activate:
      on-profile: pro # 生产环境
---
server:
  port: 83
spring:
  config:
    activate:
      on-profile: test # 测试环境
---
# 选择环境
spring:
  profiles:
    active: pro


根据上面的配置,选择的是生产环境,端口应该是82,启动服务器查看端口:

4e4bf40d5d9a4d87924a6cb4dde74caf.png


验证成功!下面看使用properties文件配置多环境:

fc8be7d0fe9b423dbc5d13c500db7040.png

03c169b4ae2b47919ea6f30d611aad91.png


1715c1c5d5504940aa579fcb32ea5459.png

90db3a3b89c3452bba6f7a193f2aa3b4.png


验证成功!

4.2 多环境启动命令格式


526bdd6a15774c9a898a28085d3fb5c7.png


上面的环境在项目打包好之后就不能改变了,显然不够灵活,通过命令行带参数启动springboot的形式,达到临时切换环境的目的。

注意事项:

  • 打包(package)之前先清除target目录(clean)


6b5da22828164f3db545c6d9c26c4a55.png


  • 将IDEA文件编码设置为UTF-8


e8fa8c35036e4ef19b78ebfed390ad57.png



命令行切换环境 命令行切换端口
java -jar **.jar --spring.profiles.active=环境名 java -jar **.jar --server.port=85

82f4194cb4864804955a902e63add990.png

014d224502e34752ad4a74f27a5e029c.png


4.3 多环境开发控制


Maven和SpringBoot都有多环境,当都配置了多环境时,SpringBoot使用Maven的环境,便于项目管理。


4ed028e2ac03429b858ed0a187349fbe.png


(1)Maven的pom文件设置多环境

  <build>
        <plugins>
            <!--            让非pom文件也能识别${},从而获取到Maven中的环境-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <useDefaultDelimiters>true</useDefaultDelimiters>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <!--    Maven配置多环境-->
    <profiles>
        <!--        生产环境-->
        <profile>
            <id>pro</id>
            <properties>
                <profile.active>pro</profile.active>
            </properties>
            <!--            默认使用这个环境-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!--        开发环境-->
        <profile>
            <id>dev</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
        </profile>
        <!--        测试环境-->
        <profile>
            <id>test</id>
            <properties>
                <profile.active>test</profile.active>
            </properties>
        </profile>
    </profiles>


(2)yml文件中引用Maven属性,从而获取环境

# 选择环境
spring:
  profiles:
    active: ${profile.active}



(3)执行打包命令查看端口


cf38d501e3c847cc8394ba1fb1cd0f2a.png

当不要用命令行启动时要及时关闭,不能双击jar包,否则会导致IO异常,clean,package报错。


4.4 配置文件分类


配置文件类别 resources下的配置文件 config目录下的配置文件 target目录下的application.yml文件 target目录下的config文件夹下的application.yml文件
优先级 4 3 2 1


10b308c379674f0794438edb41cd84b8.png


0e2059c2d5f2439e92606baf1e6197ed.png


相关文章
|
NoSQL Java 数据库连接
SpringBoot快速入门 3
SpringBoot快速入门
152 0
|
前端开发 Java 数据库连接
SpringBoot快速入门 1
SpringBoot快速入门
97 1
|
4天前
|
XML 安全 Java
SpringBoot入门 - SpringBoot简介
▶SpringBoot入门 - SpringBoot简介
|
27天前
|
XML 安全 Java
SpringBoot入门(1) - SpringBoot简介
SpringBoot入门(1) - SpringBoot简介
29 3
|
2月前
|
Java 容器 Spring
SpringBoot入门(六)
SpringBoot入门(六)
|
2月前
|
Java API 容器
SpringBoot入门(十)
SpringBoot入门(十)
|
5月前
|
Java 数据库连接 Maven
|
5月前
|
Java Maven Spring
2.springboot入门
2.springboot入门
29 0
|
5月前
|
JSON Java Maven
Springboot快速入门
Springboot快速入门
47 0
|
6月前
|
Java Maven
SpringBoot快速入门
SpringBoot快速入门
87 0
下一篇
无影云桌面