避免/null/swagger-resources/死循环,升级swagger2.0到3.0踩坑记录

关于Springboot集成swagger2出现的swagger-resouces和ui请求的404问题 关于SpringBoot继承Swagger2本地启动正常访问,打 成war包进行服务器部署或者其他端口Tomcat部署出现【swagger-resources】或者【swagger-resources/configuration/ui】请求404的问题 阅读详情
AI摘要

本文介绍了在SpringBoot项目中,由于安全原因屏蔽Swagger页面导致的404问题及解决过程。博主在升级Swagger从2.0到3.0时遇到访问 swagger-ui/index.html 显示404的情况。经过排查,发现是由于项目中使用了WebMvcConfigurationSupport类导致Swagger3.0的自动配置失效。解决问题的方法是将继承自WebMvcConfigurationSupport的类改为实现WebMvcConfigurer接口。此外,还提供了关闭Swagger页面的配置:springfox.documentation.enabled=false。

1.问题


       由于安全原因需要屏蔽生产的swagger的页面,是整个页面都屏蔽,而不是屏蔽接口,需要的效果就是访问的时候是404,

需要的效果:


博主按照网上一整搜索,下面列出:
1.https://www.cnblogs.com/anakin/p/8569820.html
2.https://blog.youkuaiyun.com/wangxy_job/article/details/106669805
一顿操作上了生产后出了问题,浏览器窗口一直弹窗,日志一直打印显示swagger死循环,/null/swagger-resources/


这怎么行,这样下去日志岂不是撑爆了。
立马快速定位问题,发现这是swagger2的一个bug,所以博主只能曲线救国,听说swagger3.0解决了这个问题

2.解决

       怎么升级swagger3.0本篇博文就不说了,只说一些问题。
在升级swagger2.0到swagger3.0遇到一些问题记录下来,引入到swagger3.0后

开发环境swagger开关是打开的springfox.documentation.enabled=true(或者直接不需要这个配置默认打开的,此配置是swagger3.0的自带开关)

发现访问http://XXXX/XXX/swagger-ui/index.html  是404错误,而不是想要的如下页面


到这一步真的好纠结为什么是404.。。。
没办法博主只能去鲁spring和swagger的源码了,一点一点跟进去。

 

一开始找到swagger3.0 的SwaggerUiWebMvcConfigurer类中addViewControllers方法根本断点就没进去,资源都找不到所以404呀,这怎么行。所以只能一点点通过find usage终于定位到问题了

问题如下项目中有小伙伴继承WebMvcConfigurationSupport类做了一些事,导致swagger3.0的SwaggerUiWebMvcConfigurer自动配置失效

关于失效这篇博文总结很好转到此:
   https://www.cnblogs.com/sueyyyy/p/11611676.html

博主一顿操作把有继承WebMvcConfigurationSupport 改成实现WebMvcConfiger,问题终于得以解决。


3.复盘


1. WebMvcConfigurationSupport类导致WebMvcConfigurer自动配置失效

2. 关闭swagger页面只需如下配置:springfox.documentation.enabled=false

您的支持是我创作的最大动力,敬礼 

若依 ruoyi-vue 接口挂载获取Resources静态资源文件权限校验 解决小程序图片打包过大,放置后端,不引用ngnix、minio等组件,还能进行权限校验。 阅读详情

相关推荐

MuleSoft+LLM企业级AI编排:打通ERP/CRM数据孤岛的实战指南

企业AI落地难,核心不在模型能力,而在业务系统深度集成——ERP、CRM、HRIS等遗留系统数据沉睡、接口异构、权限复杂,导致大语言模型(LLM)缺乏实时、可信、合规的业务上下文。MuleSoft作为成熟的企业集成平台,提供语义化API抽象、上下文感知流量治理与全链路可审计执行三大能力,恰好弥补LLM在强一致性数据源路由、跨系统事务协调和细粒度访问控制上的天然短板。本文聚焦AI编排(AI Orchestration)这一关键范式,详解如何将LLM从演示工具升级为嵌入SAP RFC、Salesforce RE

weixin_30423977的博客 362

springfox 源码分析(十六) 分组接口swagger-resouces

通过前面的分析,我们最终得到了springfox的Documentation文档对象,将我们的RESTful接口最终转换为了文档对象,文档对象是包含了接口列表、分组信息等属性的 在springfox中,为我们提供了springfox-swagger-ui来呈现最终的接口信息.在ui界面中有两个核心接口: swagger-resources:swagger分组接口,创建多少Docket,就会有多...

八一菜刀的专栏 4287

详细分析 Bladex中的swagger-resources资源未授权访问的解决方法

有如下方式,网关过滤、去除配置以及修改代码还有隐藏彩蛋(附Demo),推荐阅读

码农研究僧的博客 1727

集成Swagger的问题(swagger-resources/configuration/ui 404、弹窗等)解决

一、背景 关于swagger的特性功能,用过的人都很清楚,确实也好用。可以参考http://springfox.github.io/springfox/docs/current/。另外关于swagger的使用集成,其实比较简单,网上博客也不少。尤其是SpringBoot出现后,集成更为简单方便。当然有时候也会遇到一些问题,以前集成过几次,都很顺手,但这次却遇到麻烦。 二...

小羽毛的博客 6万+

【Infracture】【数据中心】第十三篇 Ai infra中的“现象→根因→方案→关键参数/落地”01

现象:同步 RL step 里 99 分位输出长度是中位数的几倍到几十倍,整批等最慢几条;CoT/数学/代码尤甚,GPU 空泡严重,generation 占整体 50–80%、推理任务可到 80%+。根因方案矩阵落地红线:staleness K 先小(1→2→调),长尾不丢弃只延后;记录每条轨迹 policy_version、tokenizer_version、logprob、expert_route,便于重算 advantage 时做 off‑policy 修正。部署形态:gateway(router)→

weixin_49199313的博客 376

【信息科学与工程学】计算机科学与自动化 第二百零一十一 软件开发模型01

编号类型模型领域模型中的知识点/因素/参数关联知识和法律法规1传统顺序模型瀑布模型 (Waterfall)通用软件开发、硬件紧密耦合系统、政府/军工项目、需求稳定的传统信息系统严格线性阶段:可行性研究→需求分析(SRS,含功能/非功能/接口/约束,使用IEEE 830模板)→系统设计(概要设计HLD:架构、模块划分、数据库ER图;详细设计LLD:伪代码、类图、接口定义)→实现(编码规范、代码审查、静态分析工具SonarQube)→测试(单元测试JUnit、集成测试、系统测试、验收测试UAT,测试计划提前编写

weixin_49199313的博客 149

Spring Boot实战指南:从架构设计到微服务与避坑

Java后端开发中,Spring Boot凭借“约定优于配置”理念,成为构建企业级应用的事实标准。它通过起步依赖与自动配置简化了Spring生态整合,从分层架构到多模块工程,从统一异常处理到配置外部化,大幅提升开发效率。无论是MyBatis字段级加密、SQL超时控制,还是WebSocket实时通知,Spring Boot都提供优雅的解决方案。面对微服务与分布式架构,Spring Boot作为服务底座,结合Spring Cloud、注册中心与网关,支撑系统弹性扩展。同时,版本升级(如2.6+、3.x)带来的S

weixin_34007886的博客 349

Docker 磁盘占用过多问题处理过程记录

Docker 磁盘爆满问题处理

MR.骑士道 3554

YAML驱动的Java注解生成器设计与实践

在Java后端开发中,注解是连接业务语义与框架行为的关键元数据,其本质是结构化配置信息。传统手写注解易导致信息不一致、维护成本高、跨环境协同困难等问题。基于YAML的配置驱动方案,凭借天然支持多行文本、注释、锚点复用等特性,成为统一字段描述、校验逻辑、展示配置与数据库映射的理想载体。结合JavaPoet代码生成、Freemarker模板渲染与增量写入机制,可实现Swagger、MyBatis Plus、Lombok等多框架注解的自动化产出,并保障可追溯性、可测试性与CI/CD友好性。本文聚焦CommentG

weixin_34168880的博客 194

SRAM compiler中Power Gating与Retention的实战配置指南

本文深入解析了在SRAM compiler中配置Power Gating(电源门控)与Retention(数据保持)功能的实战指南。针对低功耗芯片设计,文章详细阐述了如何根据应用场景(如移动AP、IoT设备)权衡开关类型、尺寸、唤醒时序以及保持电压,以实现静态功耗优化与数据可靠性的最佳平衡,并强调了后端实现与签核检查的关键要点。

weixin_29204121的博客 294

状态机与RTOS的融合实践:如何避免‘状态爆炸’并提升系统响应

本文探讨了状态机与RTOS的融合实践,重点介绍了如何通过层次化状态机、表驱动设计等策略避免状态爆炸问题,并优化任务调度与事件处理机制,从而显著提升嵌入式系统的响应速度和可靠性。

net55的博客 106

Cursor代码审查工具:从语法检查到业务契约守护的范式升级

代码审查已从传统的语法纠错与静态规则匹配,演进为对业务语义、上下文一致性和系统契约的深度守护。随着AI编程普及,非语法性缺陷——如业务逻辑偏移、隐含约束遗漏、跨模块契约断裂——成为质量风险新焦点。Cursor通过本地轻量模型+云端增强推理+知识图谱三重技术底座,实现语法契约、行为契约与意图契约的分层审查,支持上下文感知提示、历史模式学习与团队规则定制。它不替代人工评审,而是将开发者从低阶Bug排查中解放,聚焦于‘是否符合业务意图’‘是否维持系统一致性’等高阶判断,适用于Spring Boot、React、P

weixin_30680385的博客 362

QT5.14.2离线安装包保姆级教程:断网、选组件、避坑全记录

本文详细介绍了QT5.14.2离线安装包的完整流程,特别针对Windows平台开发者提供断网安装、组件选择及避坑指南。作为QT5系列中最后一个免费离线版本,5.14.2具有免注册、全组件离线安装等独特优势,是开源开发者的理想选择。文章涵盖从环境准备到安装后配置的全方位指导,帮助开发者高效完成安装并避免常见问题。

weixin_30924087的博客 578

SpringBoot+MybatisPlus多模块系统构建实战

在中大型企业级Java应用中,模块化架构是应对业务复杂度增长、团队协作规模扩大和系统可维护性下降的核心手段。其本质是通过限界上下文划分业务边界,借助Maven多模块实现编译隔离与依赖管控,并依托MybatisPlus的跨模块实体复用、全局填充机制与Mapper扫描优化,保障数据访问层的一致性与可扩展性。该架构显著提升独立开发、测试、部署效率,支撑灰度发布与弹性扩缩容,广泛应用于PaaS/SaaS平台、微服务中台及高并发业务系统。本文以真实云平台‘蓝鲸云’为案例,详解从模块划分铁律、领域模型设计到CI/CD按

weixin_34116110的博客 364

多旋翼飞行器设计与控制·Pixhawk4以及外部设备接线(笔记004)

笔记主要来源:Pixhawk 4 接线快速入门 目录 一、Pixhawk 4 的各个接口 二、接线图概览(重要传感器及外围设备) 三、飞控、GPS的安装和方向 四、电源 五、无线电遥控 六、数传电台(可选) 七、SD Card(可选) 八、电机以及其他外设 一、Pixhawk 4 的各个接口 FMU:Flight Management Unit 飞行管理组件 主 FMU 处理器:STM32F765 32 位 Arm® Cortex®-M7,216MHz,2MB...

猪猪的博客 1万+

2021年软件测试面试题大全

简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(主要参与人员:开发、测试、产品、测试leader)。 6、开发提交代码至SVN或者GIT ,配管搭建测试环境。 7、执行测试用例,记录发现的问题。 8、验证bug与回归测试。 9、编写测试报告。 10、产品上线。 补充测试用例设计过程: 根据需求得出测试需求 设计测试方

hard_days的博客 20万+

OpenSpec:让软件规范真正可执行、可验证、可闭环

软件规范是保障协作质量与系统可靠性的基础,但传统文档型规范常面临落地难、更新滞后、人机脱节等痛点。OpenSpec 作为一种可执行的语义化规范协议,将规则转化为 YAML/JSON 格式的机器可读契约,支持嵌入 Git 提交、API 定义、代码结构等全开发工作流。其核心价值在于打通‘规范定义’与‘工程实践’之间的断层,实现从静态约定到动态校验的跃迁。典型应用场景包括 Conventional Commits 自动校验、OpenAPI 响应结构合规性检查、Java 方法级语义约束(如审计日志与幂等校验),并天

weixin_33788244的博客 424

手把手教你用certificate-manager修复Vcenter证书过期问题(附密码重置技巧)

本文详细解析了Vcenter证书过期引发的503服务不可用、密码错误等典型故障现象,并提供了使用certificate-manager工具进行系统性修复的完整步骤。文章重点阐述了证书体系原理、精准诊断方法,并分享了在SSO验证失败时通过vdcadmintool重置密码的关键技巧,帮助管理员快速恢复平台并建立预防性运维策略。

swift5iosmith的博客 459

Spring Boot自动装配原理与生产级整合实践

Spring Boot并非新框架,而是Java企业级开发中沉淀出的工程化共识。其核心是自动装配(Auto-configuration)机制——基于条件注解(@ConditionalOnClass、@ConditionalOnMissingBean)、配置绑定(@ConfigurationProperties)和可覆盖的Java Config,实现开箱即用与灵活定制的统一。该机制支撑了iTextPDF7填充模板、Activiti会签流程、Kafka事件驱动等高频整合场景的标准化接入。技术价值在于大幅降低多技术

weixin_34034261的博客 494

【网络安全】AntSword蚁剑新手快速入门(附实战案例)

蚁剑(AntSword)是一款开源的跨平台WebShell管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。蚁剑的特点主要有如下几点:1.支持多平台。包括macOS、Linux 32位、Linux 64位、Linux armv7l、Linux arm64、Windows 32位、Windows 64位。2.完善的文档。中国蚁剑文档地址。3.多项功能。文件管理功能、虚拟终端功能、数据库管理功能。4.内置代理功能。

等风来 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

AI编程辅助时代程序员的核心护城河:工程判断力与人机协作实践

在AI编程辅助成为开发标配的今天,'写代码'正快速退化为一项基础技能,而真正决定程序员不可替代性的,是工程判断力、系统风险预判和复杂场景下的决策能力。AI擅长处理确定性高、结构清晰的‘已知的已知’任务,如CRUD模板生成、单元测试桩编写等,但无法应对业务边界模糊、合规要求动态变化、跨系统协同等‘未知的未知’挑战。其技术价值在于释放重复劳动,推动开发者从执行者转向架构设计者、质量守门员与协作协调者。典型应用场景包括需求澄清后的接口契约定义、核心算法人工设计+AI辅助编码、安全加固与三阶验证漏斗落地。本文聚焦一

weixin_33907511的博客 332

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

FastAPI+Docker+K8s构建生产级机器学习服务

机器学习模型部署不是简单运行predict函数,而是涉及服务化、可观测性与工程可靠性的系统工程。其核心原理在于将模型封装为具备健康检查、输入校验、资源隔离和错误归因能力的标准化API服务。技术价值体现在提升服务稳定性(如异步IO降低P99延迟)、强化协作效率(OpenAPI自动生成、依赖注入解耦)以及保障安全合规(非root运行、HTTPS、API鉴权)。典型应用场景包括电商实时推荐、金融风控API、IoT设备预测等需高并发、低延迟、可运维的线上推理服务。本文聚焦FastAPI、Docker镜像瘦身与Kub

aijia7039的博客 402

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

MyBatis-Plus

在 MyBatis-Plus 中,@TableId注解用于指定数据库表的主键字段,而@IdType则用于设置主键的生成策略。

m0_73837751的博客 1462

Java面试题汇总

用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。在运行过程中,Jasper可以检测JSP文件的变化,并重新编译它们。在flush的过程中,缓存会被清空,内容被写入一个新的段中,并刷新到磁盘,旧的translog会被删除并创建一个新的translog。将JSP或Servlet放在相应的子目录中,然后压缩目录,生成一个.war文件,把这个文件放置到Tomcat的webapps目录下。

look4liming的专栏 58

Swagger2.7升级到3.0后的若干问题

这个报错很明显,说ApiKey无法转换为SecurityScheme,然后我看了下3.0和2.7的源码,3.0版本docket.securitySchemes的方法目前只支持SecurityScheme,2.7版本docket.securitySchemes的方法支持SecurityScheme的子类。可以看下代码中创建的版本是否正确, swagger源码的版本目前有三个值,对于3.0版本要选择OAS_30。翻译过来就是版本不匹配,需要在代码中设置为3.0版本。

qq_34963264的博客 2241

解决Swagger控制台循环弹窗/null/swagger-resources/configuration/security

解决Swagger控制台循环弹窗/null/swagger-resources/configuration/security

qq_44717657的博客 6079
上一篇: 线上mongodb集群不可用
下一篇: Web应用防火墙WAF简介
作手小雨
博客等级 码龄14年 123粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值