在上一篇文章中我们介绍了spring boot是个啥,以及spring boot starter都干了啥,让大家对spring boot有了一个初识的了解,现在我们就开始手动写代码,开发一个web程序。
spring boot starter web
首先我们需要引包
org.springframework.boot spring-boot-starter-web
这就是告诉spring boot starter帮我启动一个web程序所需要的框架,里面都有什么呢,我们看一下
spring-boot-starter-json :json 解析器,这个应该都懂,解析request参数和response参数
spring-boot-starter-tomcat : 看名字tomcat,构建tomcat容器,以前我们开发web项目时都打war包,让tomcat运行, 而spring boot直接可以用main方法启动,没有使用web容器,其实它还是有的,只是内嵌了。
hibernate-validator : hibernate的校验,spring还真是不重复造轮子
spring-web : spring的web服务,定义spring web的服务规范
spring-webmvc : 这个不多解释,应该都懂
user 登录
创建UserApi.class作为user操作的Controller
@RestController //@Controller和@ResponseBod功能的结合体,@ResponseBody:定义返回解析为json@RequestMapping(value = "/users")public class UserApi { @RequestMapping(value = "login",method = RequestMethod.POST) public String login(@RequestBody @Valid UserDTO dto){ if ("张三".equals(dto.getName()) && "1".equals(dto.getPwd())){ return "登录成功"; } return "登录失败"; }}
@ApiModel(value = "用户登录DTO") //model功能说明public class UserDTO { @ApiModelProperty(value = "账户") //属性说明 @NotBlank //校验不为null和“” private String name; @ApiModelProperty(value = "密码") @NotBlank private String pwd; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; }}
配置文件
#访问端口server.port=8081#项目路径server.servlet.context-path=/web#项目名称spring.application.name=boot-web
一个简单的spring boot web就这样完成了,是不是非常的简单,再也没有一堆的modelandview的配置了,现在启动项目,访问一下
这样就说明我们的项目启动正常了,至于404是因为没有配置默认的访问接口,所以这里不用管它。
以前的项目中,我们都是通过页面去调用接口,但是现在前后端分离,怎么测试我们写的接口呢,难道用postman?不用,我们有一个测试的神器Swagger2。
Swagger2
要使用Swagger2首先需要引入它的jar包
io.springfox springfox-swagger2 2.2.2 io.springfox springfox-swagger-ui 2.2.2
创建swagger2的配置
@Configuration //spring boot 开启一个配置项,和spring的配置文件功能类似@EnableSwagger2 //开启swaggerpublic class Swagger2 { @Bean public Docket initDocket(){ return new Docket(DocumentationType.SWAGGER_2) //api说明 .apiInfo(apiInfo()) //初始化api选择构造器 .select() //api筛选条件 .apis(RequestHandlerSelectors.basePackage("cn.le")) //路径筛选 .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("spring boot swagger2") .version("1.0") .build(); }}
启动项目,再访问一下
我们的接口需要那些参数,参数的格式是怎么样子的,都已经给我弄好了,我们只需要填写具体的数值就行了,是不是很神器。
点一下model还能看到参数说明呢
spring boot web 是不是很简单呢
---------------代码 git 地址