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

Springboot3自定义starter笔记

场景:抽取聊天机器人场景,它可以打招呼。 效果:任何项目导入此 starter
都具有打招呼功能,并且问候语中的人名需要可以在配置文件中修改。

  1. 创建自定义 starter 项目,引入 spring-boot-starter 基础依赖。
    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
  1. 编写模块功能,引入模块所有需要的依赖。
  2. 编写 xxxAutoConfiguration 自动配置类,帮其他项目导入这个模块需要的所有组件。
  3. 编写配置文件 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports指定启动需要加载的自动配置。
  4. 其他项目引入即可使用

业务代码

在这里插入图片描述

@Service
public class RobotService {@AutowiredRobotProperties robotProperties;public String sayHello(){return "hello"+robotProperties.getName()+":"+robotProperties.getAge()+"邮箱"+robotProperties.getEmail();}
}

写下面代码为了进行属性绑定,配置文件(application.properties)配了什么属性项这个类里面都可以直接进行绑定关联(在配置文件中写的数据通过这个配置文件,在业务代码中引入RobotProperties robotProperties并进行自动注入,就会通过这个来获取配置文件中的属性)

@ConfigurationProperties(prefix = "robot")
@Component
@Data
public class RobotProperties {private String name;private String age;private String email;
}
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>

在这里插入图片描述

基本抽取

  1. 创建starter项⽬,把公共代码需要的所有依赖导⼊ 把公共代码复制进来
    在这里插入图片描述
    不选场景
    在这里插入图片描述
    在这里插入图片描述
    引入需要的web包

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
    </dependency>
    

删除主程序类
在这里插入图片描述
在新项目中导入该starter
在这里插入图片描述

  1. ⾃⼰写⼀个 RobotAutoConfiguration ,给容器中导⼊这个场景需要的所有组件
    为什么这些组件默认不会扫描进去?
    starter所在的包和 引⼊它的项⽬的主程序所在的包不是⽗⼦层级
    在这里插入图片描述
    在这里插入图片描述
  2. 别⼈引⽤这个 starter ,直接导⼊这个 RobotAutoConfiguration ,就能把这个场景的组件导⼊进来

使用@EnableXxx机制

在这里插入图片描述

完全自动配置

  1. 依赖SpringBoot的SPI机制
  2. META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
    ⽂件中编写好我们⾃动配置类的全类名即可
  3. 项⽬启动,⾃动加载我们的⾃动配置类
    在这里插入图片描述

相关文章:

  • MarkitDown:AI时代的文档转换利器
  • 四维时空数据安全传输新框架:压缩感知与几何驱动跳频
  • 【iOS安全】Dopamine越狱 iPhone X iOS 16.6 (20G75) | 解决Jailbreak failed with error
  • 如何在多线程环境下避免快速失败异常?
  • GPU异步执行漏洞攻防实战:从CUDA Stream竞争到安全编程规范
  • NHANES指标推荐:OBS
  • 大数据架构选型分析
  • 深度学习中的提示词优化:梯度下降全解析
  • 前端缓存策略
  • Milvus(23):过滤
  • 中国近代史2
  • 工业场景轮式巡检机器人纯视觉识别导航的优势剖析与前景展望
  • uniapp 弹窗封装(上、下、左、右、中五个方位)
  • 【FFmpeg+SDL】使用FFmpeg捕获屏幕,SDL显示
  • win10下安装redis并设置开机自启动
  • 前端的面试笔记——JavaScript篇(二)
  • 口播视频怎么剪!利用AI提高口播视频剪辑效率并增强”网感”
  • MATLAB安装全攻略:常见问题与解决方案
  • Linux | Linux系统安装虚拟机教程(超级简单)
  • 以项目的方式学QT开发(一)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • 雷军内部演讲回应质疑:在不服输、打不倒方面,没人比我们更有耐心
  • 问责!美国海军对“杜鲁门”号航母一系列事故展开调查
  • 前四个月人民币贷款增加10.06万亿元,4月末M2余额同比增长8%
  • “大鼻子情圣”德帕迪约因性侵被判缓刑,还有新的官司等着他
  • 第78届戛纳电影节开幕,罗伯特·德尼罗领取终身成就奖
  • 权益类基金发行回暖,这些老将挂帅新基,谁值得买?