Web应用是项目开发中的主流应用,门户、新闻、博客、线上学习等使用场景都需要Web应用。使用Spring Boot,只需简单几步即可完成Web应用构建:
- 导入模板项目
- 修改pom.xml,引入项目依赖
- 编写控制器,提供服务接口
- 编写配置文件,配置项目信息
Spring Boot项目基本结构都是相同的,所以我们可以使用Spring Initializr(Spring初始化器)直接生成一个模板项目,如下图:
- Project选择Maven Project,表示项目基于Maven构建。
- Language选择Java,表示使用Java作为开发语言
- Spring Boot的版本我们选择了2.2.4,注意不同版本的Spring Boot在配置和开发上有所区别,此处选择比较稳定的2.2.4版本即可。
- Group用来区分开发组织,为了避免与其他公司出现重复,一般使用公司域名倒置的形式。
- Artifact是项目唯一标识,保证本公司内Artifact不重复即可。
修改pom.xml,引入项目依赖Tips:
生成项目后直接导入Eclipse或IDEA即可,如果使用IDEA还可以使用向导创建Spring Boot项目。
Spring Boot为Web应用提供了spring-boot-starter-web,直接引入该依赖即可直接进行Web应用开发。
org.springframework.boot
spring-boot-starter-web
当Spring Boot发现pom配置中的spring-boot-starter-web后,便自动为我们配置了以下内容:
- 配置SpringMVC所需的ViewResolver/Converter/HttpMessageConverter等组件。
- 配置默认使用嵌入式tomcat作为web容器,默认使用8080端口。
- 配置src/main/resources/static为静态资源存放目录
通过自动配置,我们只需要引入一个依赖,即完成了搭建Web应用的工作。
此时,pom.xml全部代码如下:
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.2.4.RELEASE
com.forwhatsogood
spring-boot-helloweb
0.0.1-SNAPSHOT
spring-boot-helloweb
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
org.springframework.boot
spring-boot-maven-plugin
编写控制器,提供服务接口
通过@RestController注解,将类注册为控制器,此时该类具备了响应Http请求的功能,同时会将方法的返回值序列化为JSON。通过@RequestMapping注解,设定了类和方法的访问路径。
代码如下:
@RestController//注册为控制器,可响应web请求,同时将方法返回值序列化为JSON
@RequestMapping("/hello")//类访问路径,本类下所有方法访问都需要已/hello开头
public class HelloController {
@RequestMapping("web")//方法访问路径,此时该方法访问路径为/hello/web
public Map web() {
Map map=new HashMap();
map.put("path","/hello/web");
return map;
}
}
此时直接运行启动类,启动Spring Boot项目,访问http://localhost:8080/hello/web,结果如下:
可见响应请求成功,且返回值为json格式。
Tips:
SpringBoot默认扫描启动类所在包及其子包,如果控制器不在启动类所在包及其子包,可在启动类添加@ComponentScan(basePackages = {"包1","包2"})注解手动指定扫描包。注意!此时默认扫描机制被关闭,需要逐一手工指定所有需要扫描的包。
编写配置文件,配置项目信息Tips:
@RestController是组合注解,同时具备注册控制器和返回结果序列化功能。如果使用@Controller提供控制器功能,则需要在方法上添加@ResponseBody将方法返回结果序列化为JSON。
直接在application.properties中配置项目的启动端口及访问路径信息:
# 配置项目启动端口为8000 server.port=8000 # 配置项目访问根路径为/demo server.servlet.context-path=/demo
重启程序,访问地址变为:
# 原访问地址 http://localhost:8080/hello/web # 新访问地址添加了项目访问的根路径/demo http://127.0.0.1:8000/demo/hello/web
总结Tips:
注意springboot2.0之前,配置访问根路径语法为server.context-path=/demo
使用SpringBoot时,根据使用场景引入整合的依赖项如spring-boot-starter-web,直接将场景相关的依赖全部导入,同时自动配置相关的Bean组件,达到开箱即用的效果。



