开发你的第一个Spring Boot应用-1
一、创建SpringBoot项目的两种方式
线上初始化:https://start.spring.io/
File -> New -> Project...
手动创建Maven项目
二、创建或修改POM文件
<?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> <!--Spring Boot的父依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.linhw</groupId> <artifactId>helloworld</artifactId> <version>1.0-SNAPSHOT</version> </project>
spring-boot-starter-parent(Idea按住CTRL然后单击版本号查看),Spring Boot应用的父级依赖。提供了SpringBoot统一的依赖管理和插件管理;主要的依赖其实是继承了spring-boot-dependencies(通过标签dependencyManagement管理依赖声明),本质是继承了它然后扩展了插件配置。
spring-boot-starter-parent具体作用:
- 引入父pom里面的依赖时无须指定版本;
- java版本,项目编码格式,资源引用描述符已经设置好
- 插件管理
- 封装了配置文件的过滤规则
- 封装了打可执行jar、war的配置
- 封装了插件的版本信息
- 封装了日期格式
- 引入了eclipse和IDEA相关依赖简化了配置,达到开箱即用等
添加类路径依赖
SpringBoot提供了许多“启动程序”,可以将jar添加到类路径中。我们在POM的parent部分使用spring-boot-starter-parent元素。spring-boot-starter-parent是一个特殊的启动器,它提供了有用的Maven默认值。它还提供了一个依赖项管理部分,以便你可以省略依赖项的版本标记。
其他“启动程序”提供了开发特定类型应用程序时可能需要的依赖项。因为我们正在开发一个web应用程序,所以我们添加了一个spring-boot-starter-web依赖项。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
编写代码
为了完成我们的应用程序,我们需要创建一个Java文件。默认情况下,Maven从src/main/java编译源代码,因此你需要创建该目录结构,然后添加一个名为 src/main/java/Example.java包含以下代码:
import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(Example.class, args); } }
@RestController和@RequestMapping注解
@RestController标识我们的类是一个web的@Controller,Spring在处理传入的web请求时会考虑它。
@RequestMapping注解提供“路由”信息。它告诉Spring任何带有/path的HTTP请求都应该映射到home方法。@RestController注解告诉Spring将结果字符串直接呈现回调用者。
@EnableAutoConfiguration注解
@EnableAutoConfiguration注解告诉SpringBoot根据你添加的jar依赖项“猜测”你想要如何配置Spring。由于spring-boot-starter-web添加了Tomcat和springmvc,自动配置假定你正在开发一个web应用程序并相应地设置spring。
main方法
我们应用程序的最后一部分是主方法。这是一个标准方法,它遵循应用程序入口点的Java约定。我们的主方法通过调用run来委托SpringBoot的SpringApplication类。SpringApplication引导我们的应用程序,启动Spring,然后启动自动配置的tomcat web服务器。我们需要通过Example.class作为run方法的参数来告诉SpringApplication哪个是主要的Spring组件。args数组也被传递以暴露任何命令行参数。
创建一个可执行jar
我们通过创建一个完全自包含的可执行jar文件来完成我们的示例,该文件可以在生产环境中运行。可执行jar(有时称为“fat jar”)是包含编译类以及代码运行所需的所有jar依赖项的归档文件。
为了创建一个可执行的jar,我们需要将 spring-boot-maven-plugin插件添加到pom.xml文件. 为此,请在dependencies部分的正下方插入以下行:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
可以使用jar tvf查看内部,java -jar 执行jar文件。