网站首页图片轮转,进入京东商城,金华网站建设平台,建设银行梅州分行网站好家伙,今天终于开始用spring-boot3开始写项目了#xff0c;以后要彻底告别1.x和2.x了#xff0c;同样的jdk也来到了最低17的要求了,废话不多说直接开始 这是官方文档的要求jdk最低是17 maven最低是3.6
一. 构建工程,这一步就不需要给大家解释了吧
二. 整合Knife4j
1.大于…好家伙,今天终于开始用spring-boot3开始写项目了以后要彻底告别1.x和2.x了同样的jdk也来到了最低17的要求了,废话不多说直接开始 这是官方文档的要求jdk最低是17 maven最低是3.6
一. 构建工程,这一步就不需要给大家解释了吧
二. 整合Knife4j
1.大于 spring-boot 2.6.x 小于 spring-boot3.x的版本 swagger.version3.0.0/swagger.versionknife4j.version3.0.3/knife4j.versiondependencygroupIdio.springfox/groupIdartifactIdspringfox-boot-starter/artifactIdversion${swagger.version}/version/dependencydependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-spring-boot-starter/artifactIdversion${knife4j.version}/version/dependency2. 然后配置接口文档
Configuration
EnableOpenApi
public class Knife4jConfig {Beanpublic Docket createResetApi(){return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)).paths(PathSelectors.any()).build();}Beanpublic Docket adminApi(){return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).groupName(后台管理).select().apis(RequestHandlerSelectors.basePackage(com.demo.admin.controller)).paths(PathSelectors.any()).build();}Beanpublic Docket webApi(){return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).groupName(web端).select().apis(RequestHandlerSelectors.basePackage(com.demo.web.controller)).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title(接口文档标题).description(描述).contact(new Contact(你是哪一个, 127.0.0.1:8080, email)).license(The Apache License).termsOfServiceUrl(http://127.0.0.1:8080/api).version(1.0).build();}3. 在代码中使用
Api(tags 首页模块)
RestController
public class IndexController {ApiImplicitParam(name name,value 姓名,required true)ApiOperation(value 向客人问好)GetMapping(/sayHi)public ResponseEntityString sayHi(RequestParam(value name)String name){return ResponseEntity.ok(Hi:name);}
}Data
ApiModel
public class BaseQuery implements Serializable {private static final long serialVersionUID 1L;ApiModelProperty(value 当前页码)Integer pageNum PagesConstant.DEFAULT_PAGE;Range(min 1, max 200, message 每页条数取值范围 1-200)ApiModelProperty(value 每页条数 默认200)Integer pageSize PagesConstant.DEFAULT_PAGE_SIZE;ApiModelProperty(value 排序字段)String order;ApiModelProperty(value 是否升序)boolean asc;
}下面是新版的使用方式
1.添加最新的依赖
dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-openapi3-jakarta-spring-boot-starter/artifactIdversion${knife4j.version}/version/dependency2.编写配置文件,没有了2中的Docket,groupName,selectapis 等等…总的来说新版的变得更为简单了
Configuration
public class OpenApiConfig {/*** 默认 API 分组包含前端和后端接口*/Beanpublic GroupedOpenApi defaultApi() {return GroupedOpenApi.builder().group(default) // 分组名称.packagesToScan(com.demo) // 匹配路径可以根据实际情况调整.build();}/*** 前端 API 分组只包含前端接口*/Beanpublic GroupedOpenApi webApi() {return GroupedOpenApi.builder().group(前端接口) // 分组名称.pathsToMatch(/api/web/**) // 前端接口路径.build();}/*** 后端 API 分组只包含后端接口*/Beanpublic GroupedOpenApi adminApi() {return GroupedOpenApi.builder().group(后端接口) // 分组名称.pathsToMatch(/api/admin/**) // 后端接口路径.build();}/*** 定制全局信息*/Beanpublic OpenApiCustomizer customOpenApiCustomizer() {return openApi - openApi.info(new Info().title(API 文档).description(API 文档描述).version(1.0.0).contact(new Contact().name(API Team).email(api-teamexample.com)));}3.其中最重要的就是packagesToScan和pathsToMatch了具体是什么意思我们可以查看源代码给大家解释一下
// 分组名称用于标识 OpenAPI 配置的组。
private final String group;
// 要匹配的路径列表定义哪些路径会生成 OpenAPI 文档。
private final ListString pathsToMatch;
// 要扫描的包名列表用于发现生成 OpenAPI 文档的类。
private final ListString packagesToScan;
// 要排除的包名列表这些包中的内容不会生成 OpenAPI 文档。
private final ListString packagesToExclude;
// 要排除的路径列表这些路径不会生成 OpenAPI 文档。
private final ListString pathsToExclude;
// 要匹配的响应类型列表例如 application/json。
private final ListString producesToMatch;
// 要匹配的 HTTP 头部列表用于限定生成文档的请求。
private final ListString headersToMatch;
// 要匹配的请求体类型列表例如 application/json。
private final ListString consumesToMatch; // 显示名称用于描述 OpenAPI 配置的组。
private final String displayName;
// 自定义 OpenAPI 文档的定制器列表。
private ListOpenApiCustomizer openApiCustomizers;
// 自定义 OpenAPI 操作API 方法文档的定制器列表。
private ListOperationCustomizer operationCustomizers;
// 自定义路由操作的文档定制器列表。
private ListRouterOperationCustomizer routerOperationCustomizers;
// 用于过滤哪些方法应该包含在 OpenAPI 文档中的过滤器列表。
private ListOpenApiMethodFilter openApiMethodFilters; 4.在使用的时候也有一些变化,我们分了三个组 对应了3个模块
Tag(name /公共接口)
RestController
RequestMapping(/test)
public class AccountController {Operation(summary 获取所有接口 default)GetMapping(/index)public String index(){return Hello World;}
}Tag(name 后端接口)
RestController
RequestMapping(value /api/admin)
public class AdminController {Operation(summary 获取admin接口)GetMapping(value /index)public String index(){return Hello Admin;}
}Tag(name 前端接口)
RestController
RequestMapping(value /api/web)
public class WebController {Operation(summary 获取前端接口)GetMapping(value /index)public String index(){return Hello Web;}
}5.这样就配置好分组信息以及接口信息了,访问localhost:8080/doc.html 就会出现如下图这样 default默认分组 web 分组 admin 分组
6.这样接口文档和接口分组就配置好了 在配置文件中(我一般用yml)也可以配置
三.整合mybatis-plus,说实话新版的没太大的变化
1.mybatis-plus 3.5.9 起分页插件已分离出来。如需使用则需单独引入依赖
2.也就是说在使用这个版本的时候要多加一个依赖了
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactIdversion${mybatis.plus.version}/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-jsqlparser/artifactIdversion${mybatis.plus.version}/version/dependency3.然后在配置文件中在进行配置就可以和以前一样了
Configuration
MapperScan(scan.your.mapper.package)
public class MybatisPlusConfig {/*** 添加分页插件*/Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加// 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbTypereturn interceptor;}
}一款免费的在线文档格式转换工具在线文档转换 文章转载自: http://www.morning.mdmc.cn.gov.cn.mdmc.cn http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn http://www.morning.nmfml.cn.gov.cn.nmfml.cn http://www.morning.lnnc.cn.gov.cn.lnnc.cn http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn http://www.morning.plqsc.cn.gov.cn.plqsc.cn http://www.morning.kjrp.cn.gov.cn.kjrp.cn http://www.morning.rpms.cn.gov.cn.rpms.cn http://www.morning.fbpdp.cn.gov.cn.fbpdp.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.nwtmy.cn.gov.cn.nwtmy.cn http://www.morning.bsplf.cn.gov.cn.bsplf.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.hzqjgas.com.gov.cn.hzqjgas.com http://www.morning.pwggd.cn.gov.cn.pwggd.cn http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn http://www.morning.trjr.cn.gov.cn.trjr.cn http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn http://www.morning.gidmag.com.gov.cn.gidmag.com http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn http://www.morning.brrxz.cn.gov.cn.brrxz.cn http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn http://www.morning.rzscb.cn.gov.cn.rzscb.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.npmpn.cn.gov.cn.npmpn.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.bkjhx.cn.gov.cn.bkjhx.cn http://www.morning.ypklb.cn.gov.cn.ypklb.cn http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn http://www.morning.rmpkn.cn.gov.cn.rmpkn.cn http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.dpgdj.cn.gov.cn.dpgdj.cn http://www.morning.dhckp.cn.gov.cn.dhckp.cn http://www.morning.tjmfz.cn.gov.cn.tjmfz.cn http://www.morning.crtgd.cn.gov.cn.crtgd.cn http://www.morning.pzlcd.cn.gov.cn.pzlcd.cn http://www.morning.jbnss.cn.gov.cn.jbnss.cn http://www.morning.llxqj.cn.gov.cn.llxqj.cn http://www.morning.mbbgk.com.gov.cn.mbbgk.com http://www.morning.krwzy.cn.gov.cn.krwzy.cn http://www.morning.qglqb.cn.gov.cn.qglqb.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.blqmn.cn.gov.cn.blqmn.cn http://www.morning.bpmtr.cn.gov.cn.bpmtr.cn http://www.morning.nswcw.cn.gov.cn.nswcw.cn http://www.morning.tpssx.cn.gov.cn.tpssx.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.bmssj.cn.gov.cn.bmssj.cn http://www.morning.flxqm.cn.gov.cn.flxqm.cn http://www.morning.nqbcj.cn.gov.cn.nqbcj.cn http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn http://www.morning.thwcg.cn.gov.cn.thwcg.cn http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn http://www.morning.knpbr.cn.gov.cn.knpbr.cn http://www.morning.znqmh.cn.gov.cn.znqmh.cn http://www.morning.hphfy.cn.gov.cn.hphfy.cn http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn http://www.morning.lsssx.cn.gov.cn.lsssx.cn http://www.morning.gyfwy.cn.gov.cn.gyfwy.cn http://www.morning.newfeiya.com.cn.gov.cn.newfeiya.com.cn http://www.morning.ljbch.cn.gov.cn.ljbch.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.fdxhk.cn.gov.cn.fdxhk.cn http://www.morning.fdjwl.cn.gov.cn.fdjwl.cn http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn http://www.morning.jfxdy.cn.gov.cn.jfxdy.cn http://www.morning.ykrss.cn.gov.cn.ykrss.cn http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn http://www.morning.bgxgq.cn.gov.cn.bgxgq.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.nslwj.cn.gov.cn.nslwj.cn http://www.morning.trrpb.cn.gov.cn.trrpb.cn http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn