前言:一般在开发项目时,一般会搭建一个项目骨架,当我们能自己搭建项目骨架,并使用它能开发出一些相应的功能时,基本就可以熟练使用骨架中的技术。
该项目搭建的骨架主要步骤如下:
链接: 数据库链接
SpringBoot可以让你快速构建基于Spring的Web应用程序,内置了多种Web容器(如Tomcat),通过启动入口程序中的main函数即可
Mybatis分页插件,简洁的代码即可实现分页。
alibaba开源的数据库连接池,号称Java语言中最好的数据库连接池
Mybatis的代码生成器,可以根据数据库生成model、mapper.xml、mapper接口和Example,同城情况下的单表查询不用再手写mapper。
@SpringBootApplication
该注解是三个注解的结合体,拥有以下三个注解的功能:
1、@Configuration:用于声明Spring中的Java配置;
2、@ComponScan:启动扫描组件,当我们声明组件时,会自动发现并注册成为Spring应用上下文中的Bean;
3、@EnableAutoConfiguration:开启SpringBoot自动配置功能,简化配置编写。
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.3.RELEASE
com.scut.mall.tiny
mall-tiny-boot
0.0.1-SNAPSHOT
mall-tiny-boot
商城项目
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-starter-aop
org.springframework.boot
spring-boot-starter-test
test
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.5
com.alibaba
druid-spring-boot-starter
1.1.13
org.mybatis.generator
mybatis-generator-core
1.3.3
mysql
mysql-connector-java
org.springframework.boot
spring-boot-maven-plugin
在application.yml文件中添加数据源配置和MyBatis的mapper.xml的路径配置。
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
mybatis:
mapper-locations:
- classpath:mapper/*.xml
- classpath*:com/**/mapper/*.xml
配置数据库连接,Mybatis generator 生成model、mapper接口以及mapper.xml的路径
package com.scut.mall.tiny.mbg;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* 用于生成MBG的代码
*/
public class Generator {
public static void main(String[] args) throws Exception {
//MBG执行过程中的警告信息
List warnings = new ArrayList<>();
//当生成的代码重复时,覆盖源代码
boolean overwrite = true;
//读取MBG配置文件
InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(is);
is.close();
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
//创建MBG
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
//执行生成代码
myBatisGenerator.generate(null);
//输出警告信息
for (String warning : warnings){
System.out.println(warning);
}
}
}
Swagger-UI是HTML,JavaScript。CSS的一个集合,可以动态的根据注解生成在线API文档
常用注解如下所示:
@Api:用于修饰Controller类,生成Controller相关文档
@ApiOperation:用于修饰Controller类中的方法,生成接口方法相关文档信息
@ApiParam:用于修饰接口中的参数,生成接口参数相关文档信息
@ApiModelProperty:用于修饰实体类的属性,当实体类是请求参数或返回结果时,直接生成相关文档信息
在pom.xml中新增Swagger-UI相关依赖
io.springfox
springfox-swagger2
2.7.0
io.springfox
springfox-swagger-ui
2.7.0
Swagger对生成的API文档的范围有三种不同的选择
package com.scut.mall.tiny.config;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2Config {
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//为当前包下的controller生成API文档
.apis(RequestHandlerSelectors.basePackage("com.scut.mall.tiny.controller"))
//为有@Api注解的Contrller生成API文档
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
//为有@ApiOperation注解的方法生成API文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("Swagger-UI演示")
.description("mall-tiny")
.contact("scut")
.version("1.0")
.build();
}
}
即在contrller中添加@Api和@ApiOperation相关的注解
CommentGenerator为Mybatis Generator 的自定义注释生成器,修改addFiledComment方法,使其能在import中导入@ApiModelProperty,否则需要手动导入,这是一件非常麻烦的事情。
生成代码后,运行项目,查看结果。访问http://localhost:8080/swagger-ui.html进行测试。