在上一篇文章中我们介绍了spring boot是个啥,以及spring boot starter都干了啥,让大家对spring boot有了一个初识的了解,现在我们就开始手动写代码,开发一个web程序。
spring boot starter web
首先我们需要引包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这就是告诉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包
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
创建swagger2的配置
@Configuration //spring boot 开启一个配置项,和spring的配置文件功能类似
@EnableSwagger2 //开启swagger
public 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();
}
}
启动项目,再访问一下http://127.0.0.1:8081/web/swagger-ui.html
我们的接口需要那些参数,参数的格式是怎么样子的,都已经给我弄好了,我们只需要填写具体的数值就行了,是不是很神器。
点一下model还能看到参数说明呢
spring boot web 是不是很简单呢
---------------代码 git 地址 https://gitee.com/distant/spring-boot-geit.git