国外专业做集装箱别墅网站吴江网站建设

张小明 2026/3/12 16:44:29
国外专业做集装箱别墅网站,吴江网站建设,一般做网站的宽度怎么处理的,惠州网站建设(推荐乐云践新)Spring Boot Starter 制作原理 Spring Boot Starter 是 Spring Boot 的核心特性之一#xff0c;它通过自动配置简化了依赖管理和配置。下面详细解释其制作原理#xff1a; 一、核心概念 1. Starter 的本质 依赖集合包#xff1a;Starter 本身是一个空的 JAR 文件#xf…Spring Boot Starter 制作原理Spring Boot Starter 是 Spring Boot 的核心特性之一它通过自动配置简化了依赖管理和配置。下面详细解释其制作原理一、核心概念1.Starter 的本质依赖集合包Starter 本身是一个空的 JAR 文件只包含pom.xml用于聚合相关依赖自动配置类通过spring.factories或META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件提供自动配置类配置属性类定义可通过application.properties或application.yml配置的属性二、关键组件1.自动配置原理java复制下载Configuration // 声明为配置类 ConditionalOnClass // 类路径下存在指定类时生效 ConditionalOnProperty // 配置文件中存在指定属性时生效 EnableConfigurationProperties // 启用配置属性绑定 AutoConfigureAfter // 指定自动配置顺序 public class MyAutoConfiguration { Bean ConditionalOnMissingBean // 容器中不存在该 Bean 时创建 public MyService myService(MyProperties properties) { return new MyService(properties); } }2.条件注解Spring Boot 提供了丰富的条件注解ConditionalOnClass类路径存在指定类ConditionalOnMissingBean容器中不存在指定 BeanConditionalOnProperty配置属性匹配条件ConditionalOnWebApplicationWeb 应用环境ConditionalOnExpressionSpEL 表达式条件三、制作步骤1.项目结构text复制下载my-spring-boot-starter/ ├── src/main/java/ │ └── com/example/ │ ├── MyService.java // 核心服务类 │ ├── MyProperties.java // 配置属性类 │ ├── MyAutoConfiguration.java // 自动配置类 │ └── MyStarterApplication.java // 可选演示应用 ├── src/main/resources/ │ └── META-INF/ │ ├── spring.factories // 传统方式Spring Boot 2.6- │ └── spring/ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports // 新方式Spring Boot 2.7 └── pom.xml2.pom.xml 配置xml复制下载运行?xml version1.0 encodingUTF-8? project modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIdmy-spring-boot-starter/artifactId version1.0.0/version properties spring-boot.version3.1.0/spring-boot.version /properties dependencyManagement dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-dependencies/artifactId version${spring-boot.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies !-- 必须依赖 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-autoconfigure/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-configuration-processor/artifactId optionaltrue/optional /dependency !-- 你的 Starter 需要的依赖 -- dependency groupIdcom.example/groupId artifactIdmy-library/artifactId version1.0.0/version /dependency /dependencies /project篇幅限制下面就只能给大家展示小册部分内容了。整理了一份核心面试笔记包括了Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafc需要全套面试笔记及答案【点击此处即可/免费获取】​​​3.配置属性类java复制下载ConfigurationProperties(prefix my.service) public class MyProperties { private String name default; private int timeout 5000; private ListString servers new ArrayList(); // getters and setters }4.自动配置类java复制下载Configuration EnableConfigurationProperties(MyProperties.class) ConditionalOnClass(MyService.class) AutoConfigureAfter(DataSourceAutoConfiguration.class) public class MyAutoConfiguration { Bean ConditionalOnMissingBean public MyService myService(MyProperties properties) { MyService service new MyService(); service.setName(properties.getName()); service.setTimeout(properties.getTimeout()); return service; } Bean ConditionalOnMissingBean ConditionalOnProperty(prefix my.service, name enabled, havingValue true, matchIfMissing true) public MyFeature myFeature() { return new MyFeature(); } }5.注册自动配置Spring Boot 2.7推荐创建文件src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.importstext复制下载com.example.MyAutoConfigurationSpring Boot 2.6 及之前创建文件src/main/resources/META-INF/spring.factoriesproperties复制下载org.springframework.boot.autoconfigure.EnableAutoConfiguration\ com.example.MyAutoConfiguration四、高级特性1.自定义条件注解java复制下载Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented Conditional(OnMyCondition.class) public interface ConditionalOnMyFeature { String value(); } public class OnMyCondition implements Condition { Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { // 自定义条件判断逻辑 return true; } }2.配置提示IDE 支持创建additional-spring-configuration-metadata.jsonjson复制下载{ properties: [ { name: my.service.name, type: java.lang.String, description: 服务名称, defaultValue: default }, { name: my.service.timeout, type: java.lang.Integer, description: 超时时间毫秒, defaultValue: 5000 } ] }3.多模块 Starterxml复制下载运行!-- 父模块 -- artifactIdmy-spring-boot-starter/artifactId packagingpom/packaging modules modulemy-spring-boot-autoconfigure/module modulemy-spring-boot-starter-core/module /modules !-- 自动配置模块 -- artifactIdmy-spring-boot-autoconfigure/artifactId !-- 依赖模块 -- artifactIdmy-spring-boot-starter/artifactId dependencies dependency groupIdcom.example/groupId artifactIdmy-spring-boot-autoconfigure/artifactId /dependency /dependencies篇幅限制下面就只能给大家展示小册部分内容了。整理了一份核心面试笔记包括了Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafc需要全套面试笔记及答案【点击此处即可/免费获取】​​​五、最佳实践1.命名规范官方 Starterspring-boot-starter-{name}第三方 Starter{name}-spring-boot-starter2.设计原则按需加载使用条件注解确保只在合适的环境下生效默认配置提供合理的默认值减少用户配置外部化配置所有配置都应支持外部化向后兼容版本升级时保持 API 兼容性3.测试 Starterjava复制下载SpringBootTest EnableConfigurationProperties class MyAutoConfigurationTest { Autowired(required false) private MyService myService; Test void testAutoConfiguration() { assertThat(myService).isNotNull(); } }六、工作原理总结启动时扫描Spring Boot 启动时扫描所有META-INF/spring.factories或AutoConfiguration.imports文件加载配置类读取并加载所有自动配置类条件评估根据条件注解判断是否启用配置创建 Bean满足条件时自动配置类中的Bean方法被执行属性绑定ConfigurationProperties将配置文件中的属性绑定到 Bean通过这种机制Starter 能够智能地根据项目环境和配置自动装配所需的组件大大简化了 Spring 应用的配置工作。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

微网站开发项目合作协议推广网站方案

Excalidraw中的AI图形生成与伦理治理实践 在远程协作日益成为常态的今天,技术团队对可视化工具的需求早已超越了简单的“画图”。一张架构图、一个流程草图,往往承载着系统设计的核心逻辑,甚至影响着关键决策的方向。然而,当AI开始…

张小明 2026/3/5 3:55:02 网站建设

宁波网站设计方案上海包装设计

导读:《2025全国专精特新小巨人画像报告》由北京上奇产业研究院发布,系统描绘了我国17550家专精特新“小巨人”企业的成长轨迹、资本吸引力与科技创新实力。报告指出,这些企业高度集聚于经济大省,江苏、广东、浙江三省合计占比近四…

张小明 2026/3/5 3:55:15 网站建设

电商网站开发教材湘潭建设网站制作

技术背景深度解析 【免费下载链接】tutorials 项目地址: https://gitcode.com/gh_mirrors/tutorial/tutorials 医学影像分割的挑战与机遇 在当前的医学影像分析领域,深度学习技术面临着标注数据稀缺的核心瓶颈。传统的监督学习方法需要大量精确标注的影像数…

张小明 2026/3/5 3:55:03 网站建设

英文网站seo如何做wordpress虚拟商品

Gemini API流式响应技术深度解析与实战应用 【免费下载链接】cookbook A collection of guides and examples for the Gemini API. 项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook 在当今AI应用开发领域,响应延迟一直是影响用户体验的关键瓶颈…

张小明 2026/3/5 3:55:06 网站建设

企业营销型网站建设哪家公司好国家高新技术企业申请

从 VBScript 到 PowerShell:用户网站文件夹自动化配置 在当今的 IT 环境中,自动化脚本是提高效率和减少人为错误的关键。本文将介绍如何从 VBScript 脚本过渡到 PowerShell 脚本,以实现用户网站文件夹的自动化配置。 背景 以快速发展的 ISP 公司 companyabc.com 为例,在…

张小明 2026/3/5 3:55:07 网站建设

什么网站可以做软件有哪些内容吗微信开放平台介绍

还在为电脑磁盘空间不足而烦恼吗?每次清理文件都像在黑暗中摸索?WinDirStat这款免费开源的磁盘空间分析神器,将彻底改变你管理存储空间的方式!通过创新的可视化技术,让你一眼看穿磁盘空间的真实占用情况。 【免费下载链…

张小明 2026/3/5 3:55:08 网站建设