江帅帅:Spring Boot 底层级探索系列 01- 搭建项目

简介: 江帅帅:Spring Boot 底层级探索系列 01- 搭建项目

江帅帅,微信公众号【江帅帅】作者,擅长系统架构设计,大数据,运维、机器学习等技术领域;对大中后台技术有丰富经验(交易平台、基础服务、智能客服、基础架构、智能运维、数据库、安全、IT 等方向);曾担任怀致科技 CTO,并还在东软集团、中国移动、多迪集团等企业中任职过相关技术负责人。

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 的版本号,当我们在引入其他依赖的时候,就不用再去关心它们的版本号了,在以前是需要考虑的,而且还很容易引起版本冲突。

<!-- Inherit defaults from Spring Boot -->
<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 形式的文件,然后以通常的方式来运行。具体配置如下:

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

完整的 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 控制器类的代码,具体如下:

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 格式进行响应数据。注解的源码如下:

@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 启动类的代码,具体如下:

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,然后回车进行访问。

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

目录
相关文章
|
12天前
|
安全 Java 应用服务中间件
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
27 0
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
|
12天前
|
机器学习/深度学习 运维 Java
江帅帅:Spring Boot 底层级探索系列 02 - 自动配置的底层逻辑
江帅帅:Spring Boot 底层级探索系列 02 - 自动配置的底层逻辑
20 0
|
2月前
|
安全 Java 数据库连接
Spring整体简介
Spring整体简介
20 0
|
2月前
|
开发框架 前端开发 Java
Spring从基础到精通(基础)
Spring从基础到精通(基础)
|
9月前
|
Java 应用服务中间件 API
Spring款框架详解(宝藏级)上
Spring款框架详解(宝藏级)
Spring款框架详解(宝藏级)上
|
7月前
|
监控 Java API
Spring Boot深度解析:快速开发的秘密
Spring Boot深度解析:快速开发的秘密
47 0
|
9月前
|
前端开发 Java 数据安全/隐私保护
Spring款框架详解(宝藏级)下
Spring款框架详解(宝藏级)
|
9月前
|
Java Spring
Spring款框架详解(宝藏级)中
Spring款框架详解(宝藏级)
|
9月前
|
XML Java 数据格式
一文讲透Spring三种集成方式
一文讲透Spring三种集成方式
65 0
|
11月前
|
XML 缓存 Java
如何用注解驱动开发实现高效Spring Boot应用:综合指南(上)
如何用注解驱动开发实现高效Spring Boot应用:综合指南
116 0