精通 Spring Boot 系列 01

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

attachments-2020-06-pF3C9JWX5ee7419ea519e.jpg

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 即可。

attachments-2020-06-Ebk4OJph5ee7423d548f4.jpg

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

attachments-2020-06-GZ5zN5uV5ee7424ce5efb.jpg

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

attachments-2020-06-4gNDH5FY5ee742817a495.jpg

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

attachments-2020-06-Ksa8m2Qs5ee7429371342.jpg

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

attachments-2020-06-k4bRYRwW5ee742a29752b.jpg

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 类,如图位置:

attachments-2020-06-p4rMxZ1L5ee7433f5eb19.jpg

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 扫描得到其他的组件,添加位置:

attachments-2020-06-ke0RASmJ5ee743886d643.jpg

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 命令,具体如下

attachments-2020-06-t3MpyyQH5ee743fa8dca3.jpg

attachments-2020-06-J7SSoBr15ee744250bd7c.jpg

第 2 种:运行 main 方法启动

attachments-2020-06-xZwJeJj65ee74437318e7.jpg

第 3 种:使用 Maven 打包启动

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

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

attachments-2020-06-UHozANCZ5ee74452af818.jpg

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

attachments-2020-06-i0B61syk5ee7446310847.jpg

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

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

attachments-2020-06-BwXJJzDc5ee74473102a9.jpg

3.5 访问 Spring Boot 应用


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

http://localhost:8080/hello,然后回车进行访问。
attachments-2020-06-EtZ9layG5ee7448414363.jpg
未完待续,等我下一篇嗷 ~~~


相关阅读:

精通 Spring Boot 系列(汇总)

精通 Spring Boot 系列 02

精通 Spring Boot 系列 03

精通 Spring Boot 系列 04

精通 Spring Boot 系列 05

精通 Spring Boot 系列 06

精通 Spring Boot 系列 07

精通 Spring Boot 系列 08

精通 Spring Boot 系列 09

精通 Spring Boot 系列 10

精通 Spring Boot 系列 11

精通 Spring Boot 系列 12

精通 Spring Boot 系列 13



  • 发表于 2020-06-15 17:51
  • 阅读 ( 63 )

0 条评论

请先 登录 后评论
江帅帅 | 奈学教育
江帅帅 | 奈学教育

架构师

18 篇文章

作家榜 »

  1. 58沈剑 291 文章
  2. 奈学教育 64 文章
  3. 江帅帅 | 奈学教育 18 文章
  4. 林淮川 | 奈学教育 3 文章
  5. nxadmin 2 文章
  6. Carry Yip 1 文章
  7. 悅悅酱的小时候 1 文章
  8. Osheep 1 文章