Spring Boot
Spring Boot是Spring框架的扩展,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
Spring Boot的特点:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器和第三方库;
(5)提供生产可用的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
创建一个简单的spring boot应用
1、新建一个maven工程,pom.xml文件中添加springboot web的启动器依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.0</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
spring-boot-starter-parent中指定了一系列springboot项目相关的依赖版本,只要继承了这个,后续使用springboot的相关依赖时不需要再手动指定版本,比如spring-boot-starter-web。
2、启动类添加@SpringBootApplication注解,main方法中调用 SpringApplication.run方法,传入启动类Class对象作为参数。
此时运行程序,运行日志中可以看到springboot已经启动了内置的tomcat服务器,在默认的8080端口;
如果需要修改默认端口,可以在项目resources目录下新建application.yml或者application.properties文件,作为springboot的配置文件,
并在其中设置server.port=8081(properties文件格式),yml格式如下图(如果输入时没有自动提示功能,可以安装Spring Boot Assistant这个插件解决):
3、创建controller处理网络请求。
以一个图书管理系统为例,新建一个BookController类,实现http请求处理:
@RestController:点开该注解,可以看到其实它是@Controller和@ResponseBody这两个的结合。@Controller表示这是一个控制器,用来处理网络请求,仅使用该注解的话,程序需要返回一个视图(可以理解为一个html页面),而@ResponseBody的作用就是将数据直接放在请求的返回体中,返回给调用者。
@RequestMapping:用来匹配URL路径。
@GetMapping:用来处理get请求,同时匹配/books后的子路径,执行对应的方法。
@RequestParam:匹配请求参数,适用于 localhost:8081/books/getBook?id=1002 这种风格的请求,其中id必填,name选填。
@PathVariable:同样是匹配请求参数,适用于 localhost:8081/books/getBook/1002 这种风格的请求,其参数直接作为url路径的一部分。
启动服务,使用浏览器输入url进行测试,结果如图:
到这里,已经基于springboot完成了一个最简单服务端应用。要完善其功能,后续还有引入数据库技术、优化代码结构、处理多样请求、优化接口返回数据格式等基本工作。