当前位置: 首页 > 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…...

三星电机完成SAP S/4HANA云ERP切换:以一体化数据平台支撑实时经营决策

三星电机近日宣布,已完成基于 SAP S/4HANA 的新一代 ERP 系统部署,并正式进入全面运营阶段。这次升级的核心意义,并不只是把旧 ERP 换成新系统,而是借此打通企业内部长期分散的数据体系,将原本分别存在于 ERP、MES 和 …...

分享 种 .NET 桌面应用程序自动更新解决方案谓

一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在…...

别让AI代码,变成明天的技术债貉

如果有多个供应商,你也可以使用 [[CC-Switch]] 来可视化管理这些API key,以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.…...

MySQL锁机制:从全局锁到行级锁的深度解读赡

如果有多个供应商,你也可以使用 [[CC-Switch]] 来可视化管理这些API key,以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.cn/i…...

单调队列优化多重背包 学习笔记 详解曝

背景 StreamJsonRpc 是微软官方维护的用于 .NET 和 TypeScript 的 JSON-RPC 通信库,以其强大的类型安全、自动代理生成和成熟的异常处理机制著称。在 HagiCode 项目中,为了通过 ACP (Agent Communication Protocol) 与外部 AI 工具(如 iflow …...

【AI Agent实战】OpenClaw Skill 技能系统详解:从 Function Calling 到 MCP 到 Skill 的完整演进

关键词:OpenClaw Skill、AI Agent技能、MCP协议、Function Calling、AI工作流一、为什么装完 OpenClaw 还是感觉"没用" 安装完 OpenClaw 之后,很多人反馈一个共同问题:跟直接用 ChatGPT 感觉差不多,没看到明显差异。 原…...

网页开发四剑客:HTML/CSS/JS/PHP全解析

PHP、JavaScript、HTML 和 CSS 是构建现代网页的核心技术,它们各自承担不同角色:1. HTML(超文本标记语言)定位:网页的结构骨架功能:定义页面内容(标题、段落、图片等)和基础结构特点…...

选股小龙虾智能选股系统-2026.4.12.13 版本完整技术报告(修订版)

选股小龙虾智能选股系统2026.4.12.13 版本完整技术报告(修订版)生成时间:2026年04月12日 17:41:36【根据用户反馈修订:调整任务顺序、补充具体内容、完善技能列表】目录第一章:系统概述与版本演进第二章:完…...

【GUI-Agent】阶跃星辰 GUI-MCP 解读---()---执行层链

起因是我想在搞一些操作windows进程的事情时,老是需要右键以管理员身份运行,感觉很麻烦。就研究了一下怎么提权,顺手瞄了一眼Windows下用户态权限分配,然后也是感谢《深入解析Windows操作系统》这本书给我偷令牌的灵感吧&#xff…...

手把手教你解决PyTorch的nn、optim模块导入失败:从环境配置到文件命名的避坑全指南

深度解析PyTorch模块导入失败:从环境配置到命名冲突的全面解决方案 当你满怀期待地写下import torch.nn as nn,却遭遇"ModuleNotFoundError"的红色警告时,那种挫败感我深有体会。作为深度学习的核心框架,PyTorch的模块导…...

Gerrit代码Review高效协作指南:如何利用Topic和CI加速团队开发

Gerrit代码Review高效协作指南:如何利用Topic和CI加速团队开发 在当今快节奏的软件开发环境中,高效的代码审查流程是保证产品质量和团队协作效率的关键。Gerrit作为一款开源的代码审查工具,凭借其强大的分支管理和变更追踪能力,已…...

自动导引车(AGV)与自主移动机器人(AMR)控制系统的 C# 开源封装库诠

为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode,现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力,让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中,我们遇到了一个很现实的问…...

Xmake进阶指南---打造高效Qt开发工作流

1. 为什么选择Xmake构建Qt项目? 第一次接触Qt开发的朋友,往往会被官方推荐的qmake或CMake构建工具劝退。我至今记得五年前接手一个遗留Qt项目时,面对.pro文件中晦涩的语法和复杂的平台条件判断,整整花了两天才让项目正常编译。直到…...

i.MX6ULL 裸机 ECSPI 驱动开发详解:

在嵌入式裸机开发中,SPI(串行外设接口)是最常用的高速同步串行总线之一,广泛用于连接 Flash、加速度传感器、ADC、OLED 屏等外设。i.MX6ULL 作为 Cortex-A7 内核的工业级 MPU,内置了 4 路增强型可配置 SPI 外设&#x…...

租户数据泄露风险飙升87%!2026奇点大会权威发布大模型多租户隔离黄金标准,仅限首批200家认证企业获取

第一章:2026奇点智能技术大会:大模型多租户隔离 2026奇点智能技术大会(https://ml-summit.org) 核心挑战与设计目标 在千级租户共用同一基座大模型的生产环境中,逻辑隔离、资源配额、推理上下文污染及微调权重泄露构成关键风险。2026奇点智…...

【SITS2026权威解码】:大模型长上下文处理的5大技术瓶颈与2024工业级落地方案

第一章:SITS2026分享:大模型长上下文处理 2026奇点智能技术大会(https://ml-summit.org) 长上下文带来的核心挑战 当大语言模型需处理超长输入(如128K tokens以上)时,传统注意力机制面临显存爆炸与二次时间复杂度瓶颈…...

写了一个package.json用于提供保存文件即重新运行spring

配置环境变量node{"name": "demo1","version": "1.0.0","description": "Spring Boot project with auto-restart on file save","main": "index.js","scripts": {"dev"…...

Nginx 学习总结咏

1. 引入 在现代 AI 工程中,Hugging Face 的 tokenizers 库已成为分词器的事实标准。不过 Hugging Face 的 tokenizers 是用 Rust 来实现的,官方只提供了 python 和 node 的绑定实现。要实现与 Hugging Face tokenizers 相同的行为,最好的办法…...

jQuery元素遍历与条件检测

在网页开发中,经常会遇到需要检测多个元素状态并基于此做出某种响应的情况。本文将结合一个具体的实例,详细介绍如何使用jQuery来遍历DOM元素,并根据它们的CSS属性值来决定是否显示一条消息。 问题描述 假设我们有一个父容器div,其内部包含多个子div元素,我们希望检查这…...

Rails 7中的表单验证与错误处理

在Ruby on Rails开发中,表单验证是确保用户输入符合预期的重要机制。尤其在用户注册这样的场景中,如何优雅地处理错误信息并显示给用户,是一个不容忽视的细节。本文将结合实际代码示例,探讨在Rails 7中如何实现表单验证和错误处理。 问题背景 一位开发者在使用Rails 7开发…...

嵌入式无锁任务队列:裸机与RTOS下的零内存分配串行化方案

1. 项目概述TaskQueue 是一个轻量级、无依赖的嵌入式任务序列化库,专为资源受限的裸机(Bare-Metal)或实时操作系统(RTOS)环境设计。其核心工程目标明确且务实:在不引入复杂同步原语(如互斥锁、信…...

协程执行顺序与作用域解析

在 Kotlin 协程编程中,理解协程的执行顺序和作用域是开发高效并发程序的关键。通过一个简单的例子,我们可以深入理解 coroutineScope 和 launch 函数在协程执行顺序中的角色。 示例代码 以下是一个展示协程执行顺序的 Kotlin 代码: import kotlinx.coroutines.*fun main(…...

非线性信号的时间尺度调整

在计算机编程中处理非线性系统模型时,时间尺度常常是需要特别关注的细节。今天我们来探讨如何通过调整时间尺度来优化一个非线性自回归移动平均(NARMA)模型的输出。 背景介绍 在之前的博客中,我们已经讨论过一个基于时间的非线性信号函数NARMA_optimized。这个函数的设计…...

PHP源码是否依赖特定芯片组_Intel与AMD平台差异【操作】

不会。PHP源码在x86_64架构下编译不依赖Intel或AMD芯片组特性,失败主因是glibc版本、工具链、ABI一致性或第三方库兼容性问题,与CPU品牌无关。PHP源码编译是否因Intel/AMD芯片组行为不同而失败不会。PHP源码在x86_64架构下编译和运行,不直接依…...

MelonLoader完整教程:5分钟学会Unity游戏模组加载终极方案

MelonLoader完整教程:5分钟学会Unity游戏模组加载终极方案 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader MelonLoa…...

AQS (AbstractQueuedSynchronizer) Core

AQS (AbstractQueuedSynchronizer) Core AQS is the foundation of almost everything in java.util.concurrent. It provides: an int state a CLH wait queue. Subclasses just define what state means. What’s Built on AQS AQS ├── ReentrantLock (state h…...

AI编程时代,人类程序员还剩下什么?堂

故障表现 发现请求集群 demo 入口时卡住,并且对应 Pod 没有新的日志输出 rootce-demo-1:~# kubectl get pods -n deepflow-otel-spring-demo -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NO…...

Harness 中的事件溯源:以事件日志重建状态

Harness 中的事件溯源:以事件日志重建全链路 DevOps 状态 引言 痛点引入 作为全链路 DevOps 平台,Harness 每天会处理 数百万到数千万级别的用户/系统操作:开发者点击“启动流水线”、Feature Flag 规则引擎执行批量开关切换、云成本扫描器…...

智能车竞赛独轮组信标灯系统全解析:从硬件选型到实战调试技巧

智能车竞赛独轮组信标灯系统全解析:从硬件选型到实战调试技巧 信标灯系统作为智能车竞赛独轮组的核心模块,直接决定了车模的导航精度和比赛成绩。一套稳定高效的信标灯系统需要硬件选型、信号处理、算法优化和实战调试的完美配合。本文将深入剖析信标灯系…...