SpringBoot简化了Spring应用的初始框架搭建和开发过程,利用SpringBoot框架可以快速的进行Spring应用的开发,SpringBoot具有以下特性:
- 能够快速创建基于Spring的应用程序。
- 提供了约定好的初始POM来简化Maven配置,让Maven配置变得更简单。
- 多数情况可以直接使用注解开发来替代xml配置。
- 自动配置Spring、SpringMVC等Maven依赖。
Hello World
一、创建一个空的SpringBoot工程
1、在IDEA中创建一个空的project,便于管理项目中的各个Module: File > New > Project... > Empty Project
。
2、创建基于SpringBoot框架的Module: New > Module > Spring Initializr
,Module信息示例:
- Group:包路径,如com.yun.demo。
- Artifact:Module名称,如demo-001-helloworld。
- Package:IDEA会根据填写的Artifact名称(即Module名称)自动生成一级目录,我们一般会把最后一级的包名删掉。
- 其他:直接默认就好。
然后依次选择 Web > Spring Web
, Spring Boot
的版本一般默认就好,但是也可以根据自身需要选择一个稳定的版本,最后一步时,注意新建Module的目录 Content root
可能需要自己手动修改一下,它默认是你新建Module时鼠标选中的目录。最后点击finish之后,一个简单的SpringBoot框架就创建好了,它的程序入口就在src目录下自动创建好的 xxxApplication
类中。新创建Module目录如下(controller包是我自己手动创建的):
二、编写SpringMVC程序输出Hello World
使用SpringBoot创建一个SpringMVC应用程序非常之简单,创建Module的时候,它就已经自动配置好了SpringMVC的所有基础POM依赖,也自动集成了Tomcat,我们只需要编写一个controller类即可。不过需要注意的是,我们创建的所有包和文件都必须在启动类 xxxApplication
同级或以下目录。例如在上图的controller包中创建一个HelloController类,编码如下,然后直接运行xxxApplication类的main方法,在浏览器中输入http://localhost:8080/hello即可。
package com.yun.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;// 使用@Controller表名这是一个控制类
@Controller
public class HelloController {// 指定请求路径@RequestMapping(value="/hello")// 将返回内容包装为响应体@ResponseBodypublic String hello() {return "Hello world!";}
}
三、默认POM配置
创建SpringBoot框架Module时会自动配置对应的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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- SpringBoot默认的父工程,也是基于Maven的,里面包含了许多SpringBoot基础的依赖包,所以我们才可以直接使用一些Spring注解等基础功能,而不用自己手动配置 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version><relativePath/> <!-- lookup parent from repository --></parent><!-- 定义自己项目的GAV坐标,也可以不用写在<parent>下 --><groupId>com.yun.demo</groupId><artifactId>demo-001-helloworld</artifactId><version>1.0.0</version><!-- 项目名称和描述 --><name>demo-001-helloworld</name><description>Demo project for Spring Boot</description><!-- 项目使用的Java版本 --><properties><java.version>17</java.version></properties><dependencies><!-- SpringBoot框架的起步依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SpringBoot测试框架的起步依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><!-- SpringBoot项目的打包编译插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>