springboot 自动配置,自定义start(包含controller)

Spring的Factories机制介绍 在看本节文章之前,建议大家先去了一下java的SPI机制,因为Spring的Factories就是Spring版本的Java Spi,我在关于java基础系列文章中有详细介绍Java SPI机制。 Spring Factories的最重要的功能就是:可以通过配置文件指定Spring容器加载一些特定的组件。 基本概念 什么是Spring Factories Spring Factories是一种类似于Java SPI的机制,它在META-INF/spring.factories文件中配置接口的实现类名称,然 阅读详情

自动配置的那些理论我就不说了,网上一大把,我们直接上代码

 首先创建父工程,创建一个空的maven项目

名字我们叫做spring-boot-learn-diary(springboot 学习日记)

然后我们在新建一个模块,也是空的maven,叫做demo-spring-boot-start

在pom文件导入依赖

前面两个是必要的,lombox看自己的代码习惯

导入依赖后,我们开始编码

先创建一个实体类,我写了一个User.java,并加上注解@ConfigurationProperties,这个时候注解会报错,这个时候可以暂时不用理会

 创建完User后,我们写一个UserService.java,代码如下

service 里面写上构造方法,然后写上两个方法

然后就是我们的自动配置类了

@EnableConfigurationProperties(User.class)加上这个注解后User的实体也不报错了
@Configuration 表示这是个配置类

ConditionalOnProperty 配置生效的条件 demo.user.enabled = true 生效,matchifmissing = true,如果配置文件没有值,默认true

最后我们需要写一个配置文件:META-INF/spring.factories

springboot启动的时候,会扫描这个配置文件

我们这指定自动配置的配置类 ,如果条件成立,会自动注册bean到spring容器中

我们测试一下,新建一个springboot的web项目,然后引入自己的start

 在yml里面写上配置文件

然后我们就可以直接使用这个bean啦

如果我们要引入start里面的controller,这个又要怎么配置

 首先我们在创建一个springboot的web项目

依赖如下 

创建一个controller

 然后在编写自动配置类

 老样子,我们编写配置文件

 然后我们引入jar包,编写配置文件,重新启动

 

 启动成功够,访问

好了,自己写的start就好了,代码我上传到码云了

https://gitee.com/panjandrum/spring-boot-learn-diary

【SpringBoot】从零开始封装自己的starter并且引入到其他项目中使用 本文将介绍如何从零开始封装自己的starter并且引入到其他项目中使用 阅读详情

相关推荐

SpringBoot核心特性与实战:从自动配置到生产部署

在Java企业级应用开发中,框架的配置复杂度一直是影响开发效率的关键因素。其核心原理在于通过依赖注入和控制反转实现组件解耦,而SpringBoot在此基础上通过自动配置机制,极大地简化了这一过程。这项技术的核心价值在于遵循“约定大于配置”的理念,通过起步依赖管理、内嵌服务器和Actuator监控等特性,为开发者提供开箱即用的生产级解决方案。在实际应用场景中,无论是构建微服务、RESTful API还是传统单体应用,SpringBoot都能显著提升开发效率和项目可维护性。本文聚焦于自动配置和起步依赖这两个核心

weixin_33778544的博客 429

SpringBoot ( 二 ) 配置Controller

由于 在建立 SpringBoot项目时选择的, Maven会导入 SpringMVC 框架 依赖, 做为 Web处理框架在 SpringMVC框架中 , 通过 Controller类中的方法 来处理请求, 产生响应在方法中 要解决以下问题。

yuanchun的知识整理 4024

SpringBoot快速入门:从项目创建到RESTful API实战详解

在Java企业级开发领域,Spring框架是构建复杂应用的核心基石,但其繁琐的配置流程常令开发者却步。SpringBoot通过“约定大于配置”的设计哲学,实现了自动化配置与快速启动,其核心原理在于自动配置机制和Starter依赖管理。这一技术革新极大地提升了开发效率,降低了项目搭建门槛,使得开发者能够专注于业务逻辑实现。在微服务架构和云原生应用开发场景中,SpringBoot因其内嵌服务器、简化部署等特性成为首选框架。本文聚焦于SpringBoot项目实战,详细解析了如何使用IntelliJ IDEA创建项

weixin_33834628的博客 485

Spring Boot 自定义 starter 功能

1,创建一个空工程 2,在new Module创建一个maven工程 3,再new Module创建一个Spring Initializr 4,点击Apply,OK 5,在my-spring-boot-starter的pom.xml文件中引入myproject-spring-boot-starter-autoconfig自动配置包 &...

Java_Glory的博客 445

一天掌握SpringBoot核心开发:从环境搭建到CRUD实战

SpringBoot作为Java后端开发的主流框架,其核心设计哲学是“约定大于配置”,旨在简化传统Spring应用的初始搭建和开发过程。通过自动配置机制,SpringBoot能够根据项目依赖自动装配Bean,极大减少了繁琐的XML配置。这一特性为开发者提供了快速构建生产级独立应用的能力,显著提升了开发效率。在Web开发领域,SpringBoot内嵌了Tomcat等Servlet容器,支持轻松创建RESTful API,并与Spring Data JPA等数据访问技术无缝集成,实现高效的数据库操作。结合Mav

weixin_34007886的博客 419

springboot 导出 以及 自定义表格的导出

pom文件 <!--数据导出excel--> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</a...

起風了 1347

springboot自定义starter集成controller、Dao

springboot自定义starter集成controller、Dao

蔡定努 1825

从零搭建SpringBoot项目:IDEA环境配置与Maven依赖管理实战

Java企业级开发中,项目构建与依赖管理是核心基础环节。Maven作为主流构建工具,通过POM文件定义项目结构和依赖关系,实现依赖的自动下载与版本管理。其技术价值在于标准化项目生命周期,提升团队协作效率。在SpringBoot应用开发场景下,Maven与SpringBoot Starter机制结合,能快速引入Web、数据访问等模块依赖。本文聚焦IDEA集成开发环境,详解如何配置Maven镜像仓库优化下载速度,并通过Spring Initializr或手动配置pom.xml两种方式创建项目,解决JDK版本匹配

leonard61306500的专栏 413

创建SpringBoot自动配置项目:Starter测试使用

Starter 测试使用 完成了 starter 项目的创建、发布之后,在 Spring Boot 项目中便可以直接使用了,下面简单介绍一-下 Starter 测试使用步骤,其中省略掉了 Spring Boot 基础项目搭建的部分。 首先,通过 maven 依赖引入 starter, 在 pom.xml 文件中添加如下配置。 <groupId>com. . secbro2</groupId> <artifactId>spring-boot- starter

m0_63437643的博客 586

手把手教你用UNet实现轨道缺陷检测(附RSDDs数据集下载与完整代码)

本文详细介绍了如何使用UNet模型实现轨道缺陷检测,包括RSDDs数据集的下载与处理、UNet架构的改进与优化、训练策略设计以及模型部署的全流程。通过实战案例,展示了如何利用深度学习技术提升工业质检效率,特别适合从事工业缺陷检测和图像处理的开发者参考。

dapp9builder的博客 747

STM32串口接收避坑指南:为什么你的USART_IT_IDLE中断不触发?附完整调试流程

本文深入解析STM32串口接收中断机制,特别是USART_IT_IDLE中断不触发的常见原因及解决方案。通过详细分析中断标志清除顺序、波特率配置、硬件连接等关键因素,并提供完整的调试流程和代码示例,帮助开发者快速定位并解决串口通信问题。

weixin_42519985的博客 346

SpringBoot——手把手教你自定义starter

SpringBoot自定义starter SpringBoot是如何定义starter的 比如我们需要引入web模块 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ...

weixin_38938338的博客 744

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1526

springboot运行时出现Unable to start web server问题的解决

springboot运行时出现Unable to start web server问题的解决 出先的问题是这样的: 对于这个问题自己查阅了很多人解决的方法,在这里做一份自己处理办法的总结: 基础的目录如下: SpringApplication.run中的class文件的区别: 1.错误的使用方法: 在SpringApplication.run中用的是UserController.class文件: 这样子不是正确的使用springboot的方法,如果想要这个运行的话需要在Usercontroller中添加一

qq_40916777的博客 1万+

从CAD图纸到GIS地图:手把手教你用Global Mapper处理DWG文件(含坐标配准)

本文详细介绍了如何使用Global Mapper将CAD图纸(DWG文件)转换为GIS地图,包括坐标配准、图层与属性转换等关键步骤。通过四参数变换和控制点匹配技术,确保数据精准转换,适用于测绘、城市规划等领域。文章还提供了高级处理技巧和质量控制流程,帮助用户高效完成GIS化工作。

weixin_29196891的博客 521

从零到一:Ollama工具在RK3588上的深度优化实践

本文详细介绍了如何在RK3588开发板上深度优化Ollama工具,以高效运行DeepSeek模型。通过CPU与NPU负载平衡、模型量化、温度控制等策略,显著提升性能并降低功耗,适用于边缘计算场景。文章提供了具体的配置命令和优化方案,帮助开发者充分发挥RK3588的硬件潜力。

rgv23456789的博客 311

SpringBoot入门到精通-(五)SpringBoot自定义starter

我们来定义一个自动装配redis 的 starter,当某个项目导入该starter之后就可以根据默认配置自动去连接redis服务器。如何才能做到这样的效果呢?或许你应该想到了,仿照SpringBoot的自动配置流程,封装一个自己的jar包。那么我们需要做什么事情创建一个maven工厂,导入操作redis所需要的jar包,我这里会使用 jedis 来演示定义一个Properties类,用来加载yml配置的redis配置项新建自动装配类,使用@Configuration和@Bean来进行自动装配。

xuhanyii的博客 729

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2629

spring boot controller入门实例

spring boot可以通过start.spring.io网站方便快速的创建一个项目,当然可以通过IDE快速创建,这里使用的ECLIPSE的jee-photon-R版本进行演示。 下图是spring官网快速启动的方法: 按照红色框进行输入就可以了,不需多解释,点击Generate Project后,会下载一个初始项目,另外需要增加几个路径,才能满足web网站的开发: 其中需要创建s...

IT小黑 1506

【3GPP核心网】【5G】史上最全的5G协议规范总结

物理层信道定义:TS38.211(物理层信号的生成、调制,DMRS和额外DMRS,PRACH configuration index,Point A等介绍)传输信道和控制信道的数据处理:TS38.212(包括复用,信道编码,交织,DCI,DMRS端口号等)物理层控制过程:TS38.213(同步,上行功控,随机接入,UE上报和接收控制消息的过程,SSB等)物理层测量:TS38.215(UE和网络的测量控制,UE测量能力)频率、频点相关F R1:TS38.101-1。

风云说通信 3176

【PCIe 总线及设备入门学习专栏 6.2 -- PCIe VDM (Vendor Defined Messages)】

在PCIe协议中,Vendor Defined Messages (VDMs) 是一种允许厂商定义和传输特定功能的消息类型。这种机制扩展了标准 PCIe 消息的功能,可以用于实现供应商自定义的功能,例如固件更新、设备配置和诊断信息传输。PCIe VDM 是通过实现的,它遵循 PCIe 协议栈的结构,包括事务层、数据链路层和物理层。

CodingCos的博客 1895

自定义springboot start组件(精简版)

自定义spring-boot-starter组件 新建一个starter组件:依赖spring-data-redis,spring-boot-starter-data-redis 作用: 输入一个图片url,返回一个IMEI集合,通过百度ai ocr标准文本识别 组件module: <dependency> <groupId>com.aihuishou.mta</groupId> <artifactId>imei-spring-boot-sta

qh's blog 480

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SpringBoot quick start

简介 1.简化新Spring应用的初识搭建及开发过程,默认配置了许多框架的使用方式,像Maven整合了所有jar包一样,SpringBoot整合了所有框架。 2.之前搭建一个Spring Web项目的步骤: 1)配置web.xml,加载Spring和SpringMVC 2)配置数据库连接,配置Spring事务 3)配置加载配置文件的读取,加载注解 4)配置日志文件 5)配置完后部署Tomcat调试...

EltonQu的博客 358

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SpringBoot项目骨架深度解析:从Starter机制到CRUD实战

在Java企业级应用开发中,依赖管理和项目标准化是提升开发效率的关键。SpringBoot通过Starter机制和自动配置原理,解决了传统Spring项目中的依赖地狱问题,实现了约定大于配置的开发理念。这一技术价值在于能够快速搭建符合标准的分层架构,为开发者提供即插即用的基础设施。其应用场景广泛覆盖Web服务、数据访问和微服务架构的初始搭建。本文以SpringBoot Starter和自动配置为核心,结合项目结构规划与CRUD实战,详细解析了如何构建一个五脏俱全的SpringBoot应用骨架,帮助开发者从快

weixin_33725807的博客 582

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

从Controller到Dao:手把手教你用SpringBoot搭建一个标准的三层架构项目

本文详细介绍了如何使用SpringBoot构建标准的三层架构项目,从Controller到Dao的完整实现过程。通过领域模型层设计、数据访问层实现、业务服务层构建以及对象转换最佳实践,帮助开发者快速掌握企业级Java开发的核心技术。特别推荐使用MapStruct进行高效对象转换,提升开发效率。

weixin_30660027的博客 426

SpringBoot 核心笔记

SpringBoot 是简化 Spring 开发的一站式框架,是整个 Spring 技术栈的整合。传统Spring开发需要大量XML配置,而SpringBoot通过自动配置、场景启动器starter,极大减少配置工作。微服务架构的流行也离不开SpringBoot作为基础开发框架。微服务(Martin Fowler,2014):将单体应用拆分为一组小型独立服务,服务之间通过HTTP通信;每个功能元素是可独立替换、独立升级的单元。单体应用:All In One,所有功能打包在一个应用中。日志实现。

estrusKing的博客 237
上一篇: 如何使用spring自带的定时任务动态化配置
下一篇: spring工具-StopWatch使用介绍
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值