当前位置: 首页 > news >正文

可以做家教的网站有哪些腾讯云主机能给几个网站备案

可以做家教的网站有哪些,腾讯云主机能给几个网站备案,物流行业网站模板,网络软件设计文章目录 前言正文1 创建starter项目1.1 依赖文件1.2 配置信息 2 自定义starer代码开发2.1 配置字段的定义2.2 自动配置类 3 验证starter3.1 测试项目的配置3.2 功能配置 application.yml3.3 测试代码3.3.1 实体类3.3.2 控制器13.3.2 控制器2 4 效果展示4.1 主页4.2 实体类列表… 文章目录 前言正文1 创建starter项目1.1 依赖文件1.2 配置信息 2 自定义starer代码开发2.1 配置字段的定义2.2 自动配置类 3 验证starter3.1 测试项目的配置3.2 功能配置 application.yml3.3 测试代码3.3.1 实体类3.3.2 控制器13.3.2 控制器2 4 效果展示4.1 主页4.2 实体类列表4.3 自定义文档4.4 接口文档 附录1 参考文档2 注意事项2.1 测试项目git地址2.2 starter项目目录 前言 一直以来在接口文档这块没怎么尝试过比较新的技术点使用的都是swagger2 和 低版本的 knife4j。 本次就研究下在高版本的情况下基于swagger的接口文档有什么变化。 本文基于以下环境 组件版本Java17SpringBoot3.2.5knife4j-openapi3-jakarta-spring-boot-starter4.5.0 正文 1 创建starter项目 创建一个Maven类型的SpringBoot项目作为starter组件的开发。 1.1 依赖文件 在Maven项目中使用pom.xml文件来管理依赖。这里列举以下在starter项目中使用到的依赖坐标。 此处指定了Java版本、Maven编译Java代码时使用的Java版本并切设置项目的编码格式为UTF-8格式。 propertiesjava.version17/java.versionmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version3.2.5/spring-boot.versionknife4j-openapi3-jakarta-version4.5.0/knife4j-openapi3-jakarta-version /properties dependencies !-- https://www.mvncenter.com/search/org.springframework.boot/spring-boot-starter-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId /dependency!-- https://www.mvncenter.com/search/com.github.xiaoymin/knife4j-openapi3-jakarta-spring-boot-starter-- dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-openapi3-jakarta-spring-boot-starter/artifactIdversion${knife4j-openapi3-jakarta-version}/version /dependencydependencygroupIdjakarta.servlet/groupIdartifactIdjakarta.servlet-api/artifactId /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-autoconfigure/artifactId /dependency dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactId /dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optionalscopecompile/scope /dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional /dependency /dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies /dependencyManagement1.2 配置信息 因为这个starter组件是基于SpringBoot3.x开发的所以在自定义starter时使用新的写法不在直接使用spring.factories文件对自动配置类进行配置。 在resources目录下创建目录 META-INF/spring然后创建名为org.springframework.boot.autoconfigure.AutoConfiguration.imports的文件备用。 2 自定义starer代码开发 自定义starter的开发代码量不多主要是一个自动配置类和配置字段的定义。 2.1 配置字段的定义 package org.feng.basic.swagger.properties;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties;/*** Swagger 配置属性** author feng*/ Data ConfigurationProperties(prefix SwaggerProperties.PREFIX) public class SwaggerProperties {public static final String PREFIX swagger.config;private String title;private String version;private String description;private String termsOfService;private String licenseName;private String licenseUrl;private Contact contact;Datapublic static class Contact {private String name;private String url;private String email;} } 2.2 自动配置类 使用注解 ConditionalOnProperty 来指定是否进行配置bean的加载。 主要条件是 knife4j.enabletrue当满足条件时配置类中的内容生效。 除此之外在文件org.springframework.boot.autoconfigure.AutoConfiguration.imports 中添加自动配置类的全名包名类名。 比如我项目中的自动配置类会配置为org.feng.basic.swagger.SwaggerAutoConfiguration。 package org.feng.basic.swagger;import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import org.feng.basic.swagger.properties.SwaggerProperties; import org.springdoc.core.customizers.GlobalOpenApiCustomizer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean;import java.util.HashMap; import java.util.Map; import java.util.concurrent.ThreadLocalRandom;/*** swagger自动配置类** author feng*/ ConditionalOnProperty(prefix knife4j, name enable, havingValue SwaggerAutoConfiguration.TRUE, matchIfMissing true) EnableConfigurationProperties(SwaggerProperties.class) public class SwaggerAutoConfiguration {public static final String TRUE true;private final SwaggerProperties swaggerProperties;public SwaggerAutoConfiguration(Autowired SwaggerProperties swaggerProperties) {this.swaggerProperties swaggerProperties;}/*** 根据Tag 上的排序写入x-order** return the global open api customizer*/Beanpublic GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {return openApi - { // if (openApi.getTags() ! null) { // openApi.getTags().forEach(tag - { // MapString, Object map new HashMap(); // map.put(x-order, ThreadLocalRandom.current().nextInt(0, 100)); // tag.setExtensions(map); // }); // } // if (openApi.getPaths() ! null) { // openApi.addExtension(x-test123, 333); // openApi.getPaths().addExtension(x-abb, ThreadLocalRandom.current().nextInt(0, 100)); // }};}Beanpublic OpenAPI openApi() {return new OpenAPI().info(new Info().title(swaggerProperties.getTitle()).description(swaggerProperties.getDescription()).version(swaggerProperties.getVersion()).termsOfService(swaggerProperties.getTermsOfService()).contact(new Contact().name(swaggerProperties.getContact().getName()).url(swaggerProperties.getContact().getUrl()).email(swaggerProperties.getContact().getEmail())).license(new License().name(swaggerProperties.getLicenseName()).url(swaggerProperties.getLicenseUrl())));} } 3 验证starter 在本地开发时将 starter 项目进行 mvn install打包并上传jar到本地的maven仓库中。 随后创建一个新项目在新项目中使用刚刚写好的starter组件。起始就是引入它的maven坐标这里的版本选择和starter保持一致。 3.1 测试项目的配置 在测试项目中使用spring-boot-web组件。具体的pom.xml配置如下 propertiesjava.version17/java.versionmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version3.2.5/spring-boot.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.feng/groupIdartifactIdspring-boot-swagger-starter/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource17/sourcetarget17/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationmainClassorg.feng.SpringBootSwaggerStarterTestApplication/mainClassskiptrue/skip/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build 3.2 功能配置 application.yml server:port: 17813servlet:context-path: / spring:servlet:multipart:max-file-size: 100MBmax-request-size: 100MBapplication:name: knife4j-spring-boot3-demo springdoc:swagger-ui:path: /swagger-ui.htmltags-sorter: alpha#operations-sorter: orderapi-docs:path: /v3/api-docs# 分组配置对不同的包进行分组group-configs:- group: test1display-name: 测试1paths-to-match: /**packages-to-scan: org.feng.test1.controller- group: test2display-name: 测试2paths-to-match: /**packages-to-scan: org.feng.test2.controllerdefault-flat-param-object: trueknife4j:enable: truesetting:language: zh_cnswagger-model-name: 实体类列表# 是否在每个Debug调试栏后显示刷新变量按钮,默认不显示enableReloadCacheParameter: true# 是否开启界面中对某接口的版本控制,如果开启后端变化后Ui界面会存在小蓝点enableVersion: true# 针对RequestMapping的接口请求类型,在不指定参数类型的情况下,如果不过滤,默认会显示7个类型的接口地址参数,如果开启此配置,默认展示一个Post类型的接口地址enableFilterMultipartApis: true# 是否开启动态参数调试功能enableDynamicParameter: true# 是否显示FooterenableFooter: falseenableFooterCustom: truefooterCustomContent: Apache License xx | Copyright xxxx [xxxx-xxxx](https://xxxx.com/xxxx)# 自定义主页enable-home-custom: falsehome-custom-path: classpath:markdown/README.mddocuments:- name: 自定义文档1locations: classpath:markdown/*group: 测试1- name: 自定义文档2locations: classpath:markdown1/*group: 测试2# 启用简单的权限管理访问接口文档需要登录basic:enable: trueusername: abcpassword: 123# http://www.knife4j.net/insight:enable: falseservice-name: boot3secret: S6CsnS8AnPVyb8vvChcdXm4R3p6A6KlAISxBg3IIEgkserver: http://localhost:10086namespace: spring3swagger:config:title: ${spring.application.name}的在线文档description: 在线文档version: v1terms-of-service: contact:name: fengemail: fengsoshuai163.comurl: license-name: license-url: 3.3 测试代码 3.3.1 实体类 package org.feng.model;import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data;import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime;/*** TODO** author feng*/ Data public class User implements Serializable {Serialprivate static final long serialVersionUID 7250829747040287299L;Schema(title userId, description 用户ID, defaultValue 1)private Long id;Schema(description 名称, requiredMode Schema.RequiredMode.REQUIRED)private String name;Schema(description 注册日期)private LocalDateTime registerDate; }3.3.2 控制器1 package org.feng.test1.controller;import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.feng.model.User; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;/*** TODO** author feng*/ Tag(name test1) RestController RequestMapping(/test1) public class Test1Controller {Operation(summary 获取详情)GetMapping(/getOneById)public User getOneDetailById(RequestParam(required false) Integer id) {return null;} } 3.3.2 控制器2 package org.feng.test2.controller;import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.feng.model.User; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;/*** TODO** author feng*/ Tag(name test2) RestController RequestMapping(/test2) public class Test2Controller {Operation(summary 获取详情)GetMapping(/getOneById)public User getOneDetailById(RequestParam(required false) Integer id) {return null;} } 4 效果展示 启动项目后访问链接http://localhost:17813/doc.html#/home 4.1 主页 4.2 实体类列表 4.3 自定义文档 4.4 接口文档 附录 1 参考文档 https://doc.xiaominfo.com/docs/quick-start#spring-boot-3https://www.mvncenter.com/search/com.github.xiaoymin/knife4j-openapi3-jakarta-spring-boot-starterhttps://www.mvncenter.com/search/org.springframework.boot/spring-boot-starterhttps://gitee.com/xiaoym/swagger-bootstrap-ui-demo/tree/master/knife4j-spring-boot3-demohttp://www.knife4j.net/ 2 注意事项 2.1 测试项目git地址 https://gitee.com/fengsoshuai/spring-boot-swagger-starter-test 注意因为starter的代码和配置很少就不单独建立仓库了。仓库只包含测试项目的代码。starter的代码和配置可以从本文中粘贴出来。 2.2 starter项目目录
http://www.pierceye.com/news/119164/

相关文章:

  • 网页设计基础学什么seochan是什么意思
  • 汽车网站网页设计设计师网站推荐家装
  • 游戏交易网站怎么做wordpress 分词
  • 网站难做吗建设企业网站的需求
  • 网站开发设计文档模板wordpress5.2下载
  • 网站备案后要做什么wordpress 黑色
  • 池州建设机械网站中国房地产100强名单
  • 怎么在虚拟主机上建网站wordpress 更新feed
  • 内设网站wordpress 注册验证
  • 全景网站建设做米业的企业网站
  • 珠海哪个建设网站建设好ui网站界面设计
  • 中国有名的模版网站电商建设网站
  • 网站改域名合肥网站建设企业
  • 建网站需要软件c 怎么做能让窗体访问网站
  • 呼家楼网站建设黄骅市官方网站
  • 空包网站分站怎么做手表网站哪个最好知乎
  • 手机商城建站系统网站建设有关建筑网站建设方案
  • 做网站需要具备的基础条件wordpress 修改后台
  • 网站做点击收费标准重庆建设工业集团
  • wordpress个人网站备案管理广州网站搭建费用
  • 英文网站建设的原因泰安房产信息网网签查询
  • 怎么将网站做成html如何寻找一批做网站的公司
  • 苏州网站建设孙峰南宁站建站时间
  • 海淀手机网站设计公司苏州建设工程有限公司
  • 兰州网站设计制作王妃貌美还狠凶
  • 做新闻微网站有哪些淘宝优惠劵做网站模版
  • 网站维护的意义百度一下官网首页百度
  • 我是做网站怎么赚钱外贸网站google推广
  • 无锡网站seo报价软件开发模型是对软件开发过程的一种规范描述
  • 暴利产品竞价单页网站微信电商小程序开发公司