江帅帅:精通 Spring Boot 系列 01

简介: 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 文件中添加相关依赖,具体如下:

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

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

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

编辑 pom.xml 文件

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.2.1.RELEASE</version>

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

指定 web 依赖模块

org.springframework.boot

    <artifactId>spring-boot-starter-web</artifactId>

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

添加 maven 插件

<plugins>

    <plugin>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-maven-plugin</artifactId>

    </plugin>

</plugins>

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

完整的 pom.xml 文件源码
<?xml version="1.0" encoding="UTF-8"?>

     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>

org.springframework.boot

            <artifactId>spring-boot-maven-plugin</artifactId>

        </plugin>

    </plugins>

</build>

第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 项目

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

使用 Maven 命令启动

运行 main 方法启动

使用 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
未完待续,等我下一篇嗷 ~~~

相关文章
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
50 2
|
5月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
53 2
|
5月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
59 2
|
5月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
418 1
|
5月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
53 1
|
5月前
springboot2.4.5使用pagehelper分页插件
springboot2.4.5使用pagehelper分页插件
145 0
|
5月前
|
缓存 运维 Java
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
48 0
|
6月前
|
安全 Java 应用服务中间件
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
67 0
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
|
6月前
|
XML Java C++
【Spring系列】Sping VS Sping Boot区别与联系
【4月更文挑战第2天】Spring系列第一课:Spring Boot 能力介绍及简单实践
92 0
【Spring系列】Sping VS Sping Boot区别与联系