springboot+swagger2.10.5+mybatis-plus 入门详解
gopyja 人气:0最新idea2020安装部署超详细教程
懂得懂的
springboot简介:
个人对springboot的一点小的理解:
1.最大优势:简化配置
区别于传统的 MVC 模式,对于配置进行了大量的简化,魔鬼注解:SpringBootApplication 中包含了的注解
@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
基本包含了传统项目启动所需要的注解
2.将原始的 tomcat 等 web 容器默认引入,不需要配置 web 容器
2020-12-23 14:56:23.683 INFO 11124 --- [main] c.l.d.DataStandardApplication : The following profiles are active: dev 2020-12-23 14:56:24.871 INFO 11124 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2020-12-23 14:56:24.877 INFO 11124 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
可以看出 默认选取 tomcat 为 web 启用容器。
开始简单搭建:
0.所属环境:
1.jdk环境,
在cmd后天输入: java -version 查看是否为jdk1.8版本以上(个人建议1.8,目前稳定版本有1.8 1.11和1.14 版本)
C:\Users\hzp>java -version java version "1.8.0_251" Java(TM) SE Runtime Environment (build 1.8.0_251-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
如果没有出现,可以到 oracle 官网下载 jdk,官网地址:JDK官网下载地址,但是需要 oracle 账号,当然你可以直接从我的网盘下载:
Linux系统jdk1.8网盘地址,
链接: http://pan.baidu.com/s/1IS0e-rSleFzW5YHo0aTMPw
提取码: ktmd
windows 系统jdk1.8网盘地址,
链接: http://pan.baidu.com/s/1RGThC5gvbX3LjHA3nc8pHQ
提取码: d23k
可以自行百度进行jdk安装和配置,此处不做详细介绍。
2.开发工具 idea
去官网下载,建议下载低2个大版本的,因为网上pojie版本很少找到新版本pojie的方法。
下载地址:idea下载地址
建议下载一个版本的 idea 如图:
目前版本为2020.3,建议选择版本为 2020.2及以后版本
3.maven 环境,
建议安装一下 maven 环境,便于从国内镜像地址 aliyun 下载。
下载 maven 的地址,建议下载 3.6.1maven3下载地址
安装 maven 进行配置(此处不做详细介绍)
配置完成后在终端输入: mvn -v
C:\Users\hzp>mvn -v Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: H:\apache-maven-3.6.3\bin\.. Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: H:\Java\jdk1.8.0_251\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
对 settings.xml 进行配置(我的maven在F盘,H:\apache-maven-3.6.3\conf 为settings),将mirrors替换如下,详细配置如下:
<mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/central</url> </mirror> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云spring插件仓库</name> <url>https://maven.aliyun.com/repository/spring-plugin</url> </mirror> <mirror> <id>repo2</id> <name>Mirror from Maven Repo2</name> <url>https://repo.spring.io/plugins-release/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
打开 idea 从 左上角 file 中找到 Settings 对 maven 进行配置,如图:
1.开始搭建项目
1.打开idea,找到最左边的 file ,点击file,然后选择 new ,再选择右边的 Project ,如下图:
选择后出现如下图片:
点击选择红色方框:
点击next进行下一步选择:
选择后点击 Next 下一步:
按照图片显示的方法进行选择开发所需要的依赖,点击 next .进行project名称的选择,也可以选择直接点击 finish,如图:
项目的初步架子已经搭建起来了。
2.等待项目从aliyun下载依赖。
大概要等待 1-3分钟,根据自己的网络快慢决定。
1.出现的 pom.xml 如下图所示:
<properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
此时的以来主要文件,下面引入 mybatis-plus 3.3.2 版本:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency>
将上面的文件复制放入到 MySQL 依赖后面(主要是放在dependencies里面都可以)
然后安装官网给定的分页配置,在文件中建立一个config ,结构如图:
再创建一个MybatisPlusConfig.java,具体代码如下:
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; import com.baomidou.mybatisplus.core.injector.ISqlInjector; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize; import org.springframework.context.annotation.Bean; /** * @author hzp */ public class MybatisPlusConfig { /** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false // paginationInterceptor.setOverflow(false); // 设置最大单页限制数量,默认 500 条,-1 不受限制 // paginationInterceptor.setLimit(500); // 开启 count 的 join 优化,只针对部分 left join paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true)); return paginationInterceptor; } }
添加后完成了 mybatis-plus 的分页插件。
2.对 swagger-ui 2.10.5 的引入
首先在 pom.xml 文件中的 properties 下引入 <swagger.version>2.10.5</swagger.version>
<properties> <java.version>1.8</java.version> <swagger.version>2.10.5</swagger.version> </properties>
再在po.xml 文件中的 dependencies 文件中引入一下配置:
<!-- swagger documents--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </exclusion> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.21</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.21</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-spring-webmvc</artifactId> <version>2.10.5</version> </dependency>
为什么要先剔除 swagger-annotations 和 swagger-models ,再引入它们,可以看看另一个链接:springboot使用 swagger-ui 2.10.5 有关版本更新带来的问题
当然为什么要引入: springfox-spring-webmvc 2.10.5 也可以看看上面这个链接。
引入依赖后,在config 包下创建一个 SwaggerConfig.java 文件:
import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; 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.EnableSwagger2WebMvc; /** * @author hzp * @date 2020.12.05 */ @EnableSwagger2WebMvc @Configuration public class SwaggerConfig { @Value("${swagger.enabled}") private Boolean enabled; @Bean @SuppressWarnings("all") public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .enable(enabled) .apiInfo(apiInfo()) .pathMapping("/") .select() .apis(RequestHandlerSelectors.basePackage("com.example.hzp.demo.web")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("app 接口文档") .description("后台登录") .version("1.0") .build(); } }
添加 druid 如下面所示:
<properties> <java.version>1.8</java.version> <swagger.version>2.10.5</swagger.version> <druid.version>1.1.17</druid.version> </properties>
添加 druid依赖:
<!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency>
然后建立一个 web 包,结构如下:
完
成初步的TestController.java 编写,如下图所示:
TestController.java
文件如下:
import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * @author hzp */ @RestController @Api(tags = "Test") public class TestController { @ApiOperation(value = "测试", httpMethod = "GET") @GetMapping("/hello") public String testController(){ return "hello,world!"; } }
完善application.yml 文件如下:
server: port: 8088 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://loaclhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: 123456 druid: initial-size: 5 #连接池初始化大小 min-idle: 10 #最小空闲连接数 max-active: 20 #最大连接数 # web-stat-filter: # exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据 stat-view-servlet: #访问监控网页的登录用户名和密码 login-username: druid login-password: druid #是否开启 swagger-ui swagger: enabled: true mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml # 如果是放在resource目录 classpath:/mapper/**.xml mapper-locations: classpath:/mapper/**.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
记住一定要有数据库连接哟,这要的话 中间的 druid 等引入起来比较方便。
启动项目后如图所示:
当然你也可以直接使用 链接进行访问:
localhost:8088/test 出现如图所示:
至此,整个介绍基本完成,后续会上传代码到 git 上,感谢您的观看。
加载全部内容