精通 Spring Boot 系列 01

简介: 精通 Spring Boot 系列 01

阅读全文,约 12 分钟

这是江帅帅的第001篇原创

1、Spring Boot 概述

Spring 框架,作为一个非常优秀的轻量级容器,在企业级项目开发中非常受欢迎,但它在使用期间需要整合众多第三方资源,都会导致配置过于臃肿,这也是令大家非常头疼的问题。

Spring Boot 的出现,就是为了让大家更方便去使用 Spring 框架进行开发,它基于“约定优于配置(COC)”的设计理念,它实现了自动化配置解决方案,包括自动配置第三方资源,从而简化了 Spring 应用的创建、运行、调试、部署等方便的操作,让开发者更专注在应用业务的实现上。

其实,Spring Boot 可以想象成一个中介,它是开发者和 Spring 框架的简化沟通平台,有些“手续(应用的配置)”它直接就帮我们办理好了,这些“手续”其实就是业务流程中某些默认的流程(也就是默认的配置),刚好就是上面说的“约定优于配置”的理念。Sprint Boot 的最终目的,就是为了提升开发者在业务实现上的专注度。

2、Spring Boot 的优势

  • 继承了 Spring 框架自身优秀的特性。
  • 能够让配置更简单,通过自动配置快速搭建 Spring 应用项目。
  • 能够以 jar 文件形式独立运行项目。
  • 更强大的注解,让业务实现更简化。
  • 内嵌了常见的 Web 服务器,让你随时使用 Tomcat、Jetty 等。
  • 提供了企业生产级项目的服务监控方案,让监控更加简单。
  • 还有一些非功能性的通用配置,适应更多的开发需求。
  • 可进行分布式开发,结合 Spring Cloud 进行微服务开发。

3、搭建 Spring Boot 项目

3.1 创建 Maven 项目

第一步:菜单栏中选择 File → New → Project... 弹出下图,然后选择 Maven,再点击 Next 即可。

第二步:填写组织名称、模块名称、项目版本等相关信息,如下图:

第三步:选择项目的保存位置,如下图:

创建好之后的项目具体目录,如下图:

创建好之后的项目本地文件夹具体目录,如下图:

3.2 关于项目中目录的相关解释

  • src/main/java:用来存储编写好的 Java 源码文件,也就是 xxx.java 文件。
  • src/main/resources:用来存储编写好的配置文件。
  • src/test/java:主要用来存储测试用的 Java 源码文件。

3.3 添加配置与代码

第1步:编辑 pom.xml 文件

pom.xml 文件,全称项目对象模型(Project Object Model)描述文件,作为 Maven 的基础配置文件,常被用来指定项目中的依赖配置。

接着,我们需要在 pom.xml 文件中添加相关依赖,具体如下:

首先,使用 <parent> 标签指定  spring-boot-starter-parent 依赖模块,单从标签名字上来看,就知道它想指定(继承)父类级别的东西。

在构建 Spring Boot 应用时设置它,也就意味着会自动包含能简化我们工作的自动配置、日志和 YAML 等大量的配置。它作为 Spring Boot 的核心启动器,提供一些 Maven 默认的配置和 dependency-management,能让你快速使用 Spring Boot 进行开发。

比如,这里指定了 parent 的版本号,当我们在引入其他依赖的时候,就不用再去关心它们的版本号了,在以前是需要考虑的,而且还很容易引起版本冲突。

编辑 pom.xml 文件

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.1.RELEASE</version>
</parent>

如果,我们需要进行 Web 开发,还需要指定 spring-boot-starter-web 依赖模块,需要在 pom.xml 文件中添加 <dependency…/> 元素来进行指定,具体如下:

指定 web 依赖模块

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

最后,还可以通过 <build …/> 元素来添加插件,比如设置 Spring Boot 的 Maven 插件 Spring Boot Maven plugin,它能够为 Spring Boot 应用提供执行 Maven 操作。此插件,能够将 Spring Boot 应用进行打包为可执行的 jar 或 war 形式的文件,然后以通常的方式来运行。具体配置如下:

添加 maven 插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

完整的 pom.xml 文件,具体如下:

完整的 pom.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.nx</groupId>
    <artifactId>SpringDemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 指定 parent 版本 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
    </parent>
    <!-- 指定 web 依赖模块 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <!-- 设置 maven 插件 -->
    <build>
        <plugins>
            <plugin>
 <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

第2步:添加 Controller 类

新建一个 com.nx 的 package,然后添加一个 HelloControler 类,如图位置:

HelloController 控制器类的代码,具体如下:

HelloController 控制器

package com.nx.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String sayHello(){
        return "I Love Spring Boot.";
    }
}

@RestController 注解是一个组合注解,它包含了 @Controller@ResponseBody 两个注解,说明它能以 JSON 格式进行响应数据。注解的源码如下:

@RestController 注解源码

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    @AliasFor(
        annotation = Controller.class
    )
    String value() default "";
}

第3步:添加 Spring Boot 启动类

启动类的路径,需要能够让 spring boot 扫描得到其他的组件,添加位置:

SpringBootApp 启动类的代码,具体如下:

SpringBootApp 启动类

package com.nx;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// 用于指定 Spring Boot 应用的启动类
@SpringBootApplication
public class SpringBootApp {
    public static void main(String[] args) {
        // 从 main 方法中进行启动 Spring 应用中的类
        SpringApplication.run(SpringBootApp.class, args);
    }
}

3.4 启动 Spring Boot 项目

有三种启动方式,具体如下:

  1. 使用 Maven 命令启动
  2. 运行 main 方法启动
  3. 使用 Maven 打包启动

第1种:使用 Maven 命令启动

使用 Maven 命令:

spring-boot:run

指定项目路径和 Maven 命令,具体如下

第 2 种:运行 main 方法启动

第 3 种:使用 Maven 打包启动

需要将 Spring Boot 应用打成一个 jar 包运行。

首先,在 IDEA 的右边栏中,打开 Maven 即可看到如下页面,双击 package 命令。

然后,找到项目所在路径下的 target 文件夹,打开即可看到生成的 jar 文件。

最后,通过命令行进入到 jar 文件所在目录下,并执行 java -jar 命令。

java -jar .\SpringDemo-1.0-SNAPSHOT.jar

3.5 访问 Spring Boot 应用

打开浏览器,在地址栏中输入请求地址:

http://localhost:8080/hello,然后回车进行访问。

未完待续,等我下一篇嗷 ~~~

目录
相关文章
|
8月前
|
搜索推荐 Java 索引
Spring Boot中的ElasticsearchRepository
Spring Boot中的ElasticsearchRepository
|
12天前
|
存储 安全 Java
精通 Spring Boot 系列 14
精通 Spring Boot 系列 14
10 0
|
12天前
|
前端开发 Java 文件存储
精通 Spring Boot 系列 06
精通 Spring Boot 系列 06
28 0
|
12天前
|
Java Spring
精通 Spring Boot 系列 10
精通 Spring Boot 系列 10
23 0
|
12天前
|
Java Spring
精通 Spring Boot 系列 09
精通 Spring Boot 系列 09
23 0
|
12天前
|
JSON Java fastjson
精通 Spring Boot 系列 05
精通 Spring Boot 系列 05
18 0
|
10月前
|
Java Spring
Spring Boot 3.0
Spring Boot 3.0
574 0
|
11月前
|
存储 JSON 安全
Spring Boot 安全
1.概述 在后端来说,安全主要就是控制用户访问,让对应权限的用户能访问到对应的资源,主要是两点: 认证 授权 认证,确定是谁。 授权,核实权限。 每个安全框架其实都是为了实现这两点。 目前常用的实现方式有如下几种: token JWT oauth spring security 前三种是理念,最后一种是开箱即食的框架。 2.token 2.1.理论 token ,也叫“令牌”,是验证用户身份的凭证。token的组成具有随意性,能标识用户身份即可。
99 0
|
XML 监控 Java
【Spring Boot系列1】一文带你了解Spring Boot(上)
这几天一直没有更新,本来上一篇文章打算写MyBatis和实际项目的应用,当我把项目代码看完后,发现里面很多地方还是不太理解,就先不写了,等过两个月,实力水平提上来后,我再写这块内容。
261 0
【Spring Boot系列1】一文带你了解Spring Boot(上)
|
JSON 前端开发 Java
Spring Boot Starters介绍
Spring Boot Starters介绍