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 项目
有三种启动方式,具体如下:
-
使用 Maven 命令启动
-
运行 main 方法启动
-
使用 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,然后回车进行访问。
未完待续,等我下一篇嗷 ~~~