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

万字拆解 LLM 运行机制:Token、上下文与采样参数抵

springboot自动配置自动配置了大量组件配置信息可以在application.properties文件中修改。当添加了特定的Starter POM后springboot会根据类路径上的jar包来自动配置bean比如springboot发现类路径上的MyBatis相关类springboot会自动配置MyBatis相关的bean。springboot使用默认配置来设置这些功能开发人员也可以自定义配置来覆盖默认配置。这些配置信息如何生效的通过ConfigurationProperties注解将配置信息注入到组件中的属性类的。属性类一般以Properties结尾。比如tomcat组件的ServerProperties类就是将配置信息中server开头的配置注入到属性中比如server.port8080会被绑定到属性中ConfigurationProperties(server)public class ServerProperties {private Nullable Integer port;private Nullable InetAddress address;.....}自动配置是按需加载的springboot提供很多自动配置类这些自动配置不是全部生效它是按需加载的导入了哪个启动器则该启动器对应的配置类才会被加载。任何启动器都会关联一个启动器spring-boot-Starter它是springboot框架最核心的启动器。spring-boot-Starter又关联引入spring-boot-auto从figure。所有的自动配置类都在这里。自动配置类用来创建相应的组件。按需加载如何实现使用条件注解可以实现按需加载。条件注解基于某些条件决定是否应该创建一个bean。这些注解通常用在自动配置类上以确保只有在特定条件满足时才会应用相应的配置。条件注解可以用在类上也可以用在方法上。常见的条件注解有ConditionalOnClass 指定类存在时才创建beanConditionalOnMissingClass 指定类不存在时才创建beanConditionalOnBean 容器中存在指定bean时才创建beanConditionalOnMissingBean 容器中不存在指定bean时才创建beanConditionalOnProperty 配置文件中存在指定属性时才创建beanConditionalOnResource 指定资源存在时才创建beanConditionalOnWebApplication 应用程序是Web应用时才创建beanConditionalOnNotWebApplication 应用程序不是Web应用时才创建bean修改默认的包扫描规则修改扫描规则有2种方式在主入口类上添加以下注解的任意一个都可以修改包扫描规则扫描com包及其子孙包ComponentScan(com)SpringBootApplication(scanBasePackages com)自动配置的实现原理程序从main方法开始执行主入口类上使用SpringBootApplication进行标注SpringBootApplication是复合注解代表以下三个注解的功能a. SpringBootConfiguration:它被Configuration标注。表明主入口类是一个配置类此时该配置开始加载。b. ComponentScan 默认扫描主入口类所在包及其子孙包因此spring-boot-autoconfigure 自动配置类是无法加载的那么这些自动配置类又是怎么生效的呢c. EnableAutoConfiguration 该注解的作用就是启用自动配置EnableAutoConfiguration 被Import({AutoConfigurationImportSelector.class})标注? Import({AutoConfigurationImportSelector.class})的作用是将AutoConfigurationImportSelector作为一个bean加载到Ioc容器中? 这个bean的作用是负责收集和选择所有符合条件的自动配置类。总结运行环境准备阶段引入Web启动器最终传递引入了自动配置的jar包自动配置的jar包中有152个自动配置类到此运行环境准备完毕运行阶段EnableAutoConfiguration 启用自动配置将152个自动配置类全部加载到Ioc容器中。然后根据开发场景筛选出必须得自动配置类自动配置类加载了很多组件每个组件需要的数据来自属性类属性类的属性来自配置文件总之一句话。导入启动器修改配置文件。就可以完成对应功能的开发。springmvc配置# 让springboot的静态资源处理失效spring.web.resources.add-mappingsfalse# 配置静态资源的访问URLspring.mvc.static-path-pattern/**# 静态资源文件存储位置默认配置spring.web.resources.static-locationsclasspath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/springboot对静态资源是如何处理的什么样的URL 访问哪个位置上的资源文件webjarswebjars是现在前后端分离中比较重要的一种静态资源打包方式。webjars是一种常用的前端库如jQuery打包成jar包的形式方便在java程序中使用。webjars提供了一种标准化的方式来管理前端库使其更容易集成到java项目中并且可以利用Maven的依赖管理功能。org.webjars.npmvue3.5.12默认规则是当请求路径是/wbjars/**,则会去classpath:/MEAT-INF/resources/webjars/找。静态资源缓存处理静态资源缓存是指浏览器的缓存行为浏览器可以缓存js、CSS、图片、声音、视频到浏览器中下一次用户访问同样的资源就直接从缓存中获取不再从服务器获取这样能减少服务器压力提高相应效率。可以通过配置来修改默认的缓存机制。静态资源缓存设置缓存有效期设置spring.web.resources.cache.period3600# 缓存控制设置spring.web.resources.cache.cachecontrol.max-age20# 是否启用最后一次修改时间的比对spring.web.resources.cache.use-last-modifiedtrue静态index.html的支持spring会自动处理位于静态资源目录下的index.html文件名必须是index.html使其成为应用程序的主页。注意此时不能配置静态资源访问urlspring.mvc.static-path-pattern必须使用默认的配置favicon.ico将favicon.ico放在静态资源根目录下就会自动生效。spring boot的web手动配置静态资源处理编写代码的方式第一种方式 实现WebMvcConfigurer接口// 添加这个注解后表示不再使用springboot提供的默认配置// EnableWebMvcConfigurationpublic class WebConfig implements WebMvcConfigurer {// 静态资源处理需要重写的方法Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// 使用注册器registry 绑定 pathPatterns 以及真实的静态资源文件存储路径registry.addResourceHandler(/abc/**) // 配置路径访问模式.addResourceLocations(classpath:/static1/, classpath:/static2/, classpath:/static3/); // 配置静态资源路径}}第二种方式Configurationpublic class WebConfig2 {Beanpublic WebMvcConfigurer addResourceHandlers() {return new WebMvcConfigurer() {Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/abc/**) // 配置路径访问模式.addResourceLocations(classpath:/static1/, classpath:/static2/, classpath:/static3/); // 配置静态资源路径}};}}web请求的路径匹配# 前端请求的url 匹配到controller中的某个方法# 使用ant风格的路径匹配规则默认值是path_pattern_matcher# path_pattern_matcher兼容且支持ant风格# 在ant风格中** 可以出现在任何位置但在path_pattern_matcher风格中** 只能出现在末尾# spring6 下的ant风格 ** 也只能出现在末尾spring.mvc.pathmatch.matching-strategyant_path_matcher列卓壬苟

相关文章:

万字拆解 LLM 运行机制:Token、上下文与采样参数抵

springboot自动配置 自动配置了大量组件,配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后,springboot会根据类路径上的jar包来自动配置bean(比如:springboot发现类路径上的MyBatis相关类&#xff…...

[UVM源码解析] 揭秘uvm_object中copy与clone的深层机制与应用陷阱

1. UVM中copy与clone的本质区别 第一次接触UVM的copy和clone方法时,很多人都会困惑:这两个看起来功能相似的方法到底有什么区别?我在实际项目中踩过几次坑后才真正理解它们的本质差异。简单来说,copy是赋值操作,而clon…...

Flutter 集成三方库实现鸿蒙6.0+(API20)用户信息管理案例实践

欢迎加入开源鸿蒙跨平台社区: https://openharmonycrossplatform.csdn.net 前言 本实践基于 Flutter 官方鸿蒙适配方案,面向 HarmonyOS 6.0(API Level 20 及以上)设备,以「用户信息管理」为具体案例,集成网…...

若依(RuoYi)SpringBoot框架前后端数据安全传输实践:基于Base64的接口加解密方案

1. 为什么需要接口数据加密? 最近在做一个金融类项目时,客户明确要求所有接口传输数据必须加密。这让我意识到,很多开发者可能忽略了接口安全的重要性。想象一下,如果你的API数据在传输过程中被截获,用户密码、身份证号…...

二手硬盘避坑指南:用MHDD检测硬盘健康状态的5个关键指标(附真实案例)

二手硬盘避坑指南:用MHDD检测硬盘健康状态的5个关键指标(附真实案例) 在二手硬件交易市场,硬盘是最容易"踩雷"的品类之一。翻新盘、清零盘、扩容盘等造假手段层出不穷,普通消费者往往在数据丢失后才意识到问…...

从卫星影像到土壤侵蚀图:ArcGIS栅格计算实战全记录(含Pikachu靶场同款数据)

从卫星影像到土壤侵蚀图:ArcGIS栅格计算全流程实战指南 当Landsat卫星以每秒7公里的速度掠过地球表面时,它的传感器正在捕捉从可见光到红外波段的电磁波信息。这些看似抽象的数字背后,隐藏着解读地表植被覆盖与土壤侵蚀状况的密码。作为环境评…...

Spring事务@Transactional失效的7大隐蔽陷阱与实战避坑指南

1. 代理机制失效的隐蔽陷阱 Spring事务管理的核心原理是通过动态代理实现的,但很多开发者并不清楚代理机制在哪些情况下会失效。最常见的问题就是同一个类中的方法内部调用。比如你在Service类中写了一个无事务的方法A,A内部调用了有Transactional注解的…...

0 基础后端小白:从 0 到 1 参与 GitHub 开源项目(超详细保姆级教程)​

🔥个人主页:北极的代码(欢迎来访) 🎬作者简介:java后端学习者 ❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb ✨命运的结局尽可永在,不屈的挑战却不可须臾或…...

移动端兼容性测试的“苦”与“解”

一场与碎片化的持久战凌晨两点的办公室,测试工程师李明面对第37台报错设备苦笑——同一功能在A品牌流畅运行,却在B品牌低端机型反复闪退。屏幕上的崩溃日志如天书般蔓延,身后堆积如山的测试设备沉默宣告着移动端兼容性测试的残酷现实。在设备…...

别再被CUDA版本搞晕了!手把手教你为MMCV和PyTorch选对CUDA Toolkit(附版本对照表)

深度学习环境配置终极指南:CUDA、PyTorch与MMCV版本匹配全解析 当你第一次尝试搭建深度学习开发环境时,面对各种CUDA版本、PyTorch版本和MMCV版本的要求,是否感到一头雾水?特别是当你的GPU驱动已经更新到最新版,而项目…...

FanControl实战指南:3步实现Windows电脑风扇智能温控

FanControl实战指南:3步实现Windows电脑风扇智能温控 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/…...

【OpenClaw】通过 Nanobot 源码学习架构---()总体堵

核心摘要:这篇文章能帮你 ?? 1. 彻底搞懂条件分支与循环的适用场景,告别选择困难。 ?? 2. 掌握遍历DOM集合修改属性的标准姿势与性能窍门。 ?? 3. 识别流程控制中的常见“坑”,并学会如何优雅地绕过去。 ?? 主要内容脉络 ?? 一、痛…...

CustomTkinter终极指南:三步打造现代化Python桌面应用

CustomTkinter终极指南:三步打造现代化Python桌面应用 【免费下载链接】CustomTkinter A modern and customizable python UI-library based on Tkinter 项目地址: https://gitcode.com/gh_mirrors/cu/CustomTkinter 还在为Tkinter陈旧界面而烦恼吗&#xff…...

现货库存DS1305EN+TR‌ 是ADI推出的一款高集成度实时时钟(RTC)芯片,具备精准计时、低功耗运行和工业级可靠性等核心优势,广泛应用于工业控制、嵌入式系统、智能仪表等领域

DS1305ENT&R‌ 是ADI推出的一款高集成度实时时钟(RTC)芯片,具备精准计时、低功耗运行和工业级可靠性等核心优势,广泛应用于工业控制、嵌入式系统、智能仪表等领域。产品核心性能‌高精度时间管理‌:支持秒、分钟、…...

LeetDown:macOS上最简单快速的A6/A7设备降级工具终极指南

LeetDown:macOS上最简单快速的A6/A7设备降级工具终极指南 【免费下载链接】LeetDown a GUI macOS Downgrade Tool for A6 and A7 iDevices 项目地址: https://gitcode.com/gh_mirrors/le/LeetDown 还在为老款iPhone或iPad升级后卡顿而烦恼吗?Leet…...

让老式PL2303芯片在Windows 10/11上重获新生:实用兼容驱动方案

让老式PL2303芯片在Windows 10/11上重获新生:实用兼容驱动方案 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 前几天在整理工作室时,我发现了一…...

基于STM32与对射式红外传感器的实时计数系统开发(Keil平台实战)

1. 项目背景与硬件选型 在工业自动化、智能仓储等场景中,物体计数是个高频需求。传统人工计数效率低且易出错,而基于STM32和对射式红外传感器的方案成本不到50元,却能实现99%以上的识别准确率。我去年为某物流分拣中心开发的这套系统&#x…...

PoeCharm:用数据驱散《流放之路》构建迷雾,让每个玩家都能成为build大师

PoeCharm:用数据驱散《流放之路》构建迷雾,让每个玩家都能成为build大师 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm PoeCharm作为Path of Building的中文增强版&#xf…...

智能语音转写效率工具:AsrTools解放你的音频处理工作流

智能语音转写效率工具:AsrTools解放你的音频处理工作流 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate…...

【PHP异步I/O配置终极指南】:20年SRE亲授EventLoop选型、Swoole协程适配与ReactPHP性能调优(附压测对比数据)

第一章:PHP异步I/O配置全景认知与演进脉络PHP的异步I/O能力并非原生内置,而是伴随SAPI模型演进、扩展生态成熟及现代协程范式兴起逐步构建的。从早期通过多进程(pcntl_fork)或轮询(stream_select)模拟非阻塞…...

PHP 8.9 GC性能瓶颈诊断全流程:从memory_get_usage()到gc_status()再到xdebug_gc_dump()的4步精准定位法

第一章:PHP 8.9 垃圾回收优化方法PHP 8.9 引入了基于引用计数增强与周期检测协同的混合式垃圾回收(GC)机制,显著降低了内存泄漏风险并提升了长生命周期对象的清理效率。该版本默认启用增量式 GC 扫描,并支持运行时动态…...

别再只写CRUD了!用SpringBoot拦截器和自定义注解,给你的课程设计项目加上专业的权限控制

从零构建SpringBoot权限控制系统:拦截器与注解实战指南 每次课程设计答辩现场,总能看到这样的场景:学生演示着千篇一律的增删改查功能,评委老师皱着眉头问"权限控制怎么实现的",然后全场陷入尴尬的沉默。如果…...

峰值电流控制模式在开关电源中的动态响应优化策略

1. 峰值电流控制模式的核心原理 我第一次接触峰值电流控制模式是在设计一款手机充电器时。当时被它独特的双环控制结构吸引——就像汽车同时配备油门踏板和定速巡航,既能快速响应路况变化,又能保持稳定车速。这种模式通过实时监测电感电流的峰值来动态调…...

手机QQ图片传输抓包实战:Wireshark+010Editor从捕获到还原全流程

手机QQ图片传输抓包实战:Wireshark010Editor从捕获到还原全流程 在移动互联网时代,即时通讯软件的数据传输安全越来越受到关注。作为国内用户量最大的社交应用之一,QQ的图片传输机制既常见又具有一定代表性。本文将带你深入探索手机QQ图片传输…...

手把手教你用FastDeploy轻松玩转文心大模型4.5开源版

1. 为什么选择FastDeploy部署文心大模型4.5 最近在AI圈子里,文心大模型4.5开源版绝对是热门话题。作为一个长期折腾AI模型部署的老手,我试过各种部署工具,FastDeploy确实让我眼前一亮。这个由百度官方推出的工具,专门为大模型部署…...

Revit 2026从零到一:一站式下载、安装、激活与授权实战指南(附资源包)【2025版】

1. Revit 2026软件下载全攻略 第一次接触Revit的朋友们,下载软件这一步就可能让你们头疼。我见过太多人因为下载了不完整的安装包,导致后续安装频频报错。今天我就手把手带大家找到官方正版的Revit 2026安装资源。 目前获取Revit安装包主要有三个靠谱途径…...

Applite终极指南:3分钟掌握macOS最优雅的Homebrew图形化管理工具

Applite终极指南:3分钟掌握macOS最优雅的Homebrew图形化管理工具 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为Homebrew的命令行操作而烦恼吗?…...

AMD Ryzen硬件调试终极指南:SMUDebugTool深度解析与实战手册

AMD Ryzen硬件调试终极指南:SMUDebugTool深度解析与实战手册 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…...

基于LDA主题模型的微博舆情分析实战指南

1. 微博舆情分析为什么需要LDA主题模型 每天微博上产生的海量内容就像一座未经开采的金矿,但如何从这些杂乱无章的文本中发现有价值的信息?这就是LDA主题模型大显身手的地方。我在实际舆情分析项目中,经常遇到这样的场景:客户给过…...

终极指南:深度探索JiYuTrainer极域电子教室破解技术实战

终极指南:深度探索JiYuTrainer极域电子教室破解技术实战 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer JiYuTrainer是一款专为对抗极域电子教室控制而设计的开源工具…...