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

【SpringBoot】注册条件+自动配置原理+自定义starter

 注册条件

注入到容器内实体类型对象的属性都是null,这些对象并没有什么实际的意义,因为实体类的对象就是来封装对象的,结果你这些对象中什么都没有;

解决方法是

1.给这些属性赋值然后再注入bean

但是这些属性又是固定的不是很好,所以写入到配置文件中

将配置文件中的内容进行注释,发现直接报错

但是想要的效果是在配置文件中没有找到对应值,就不进行注入bean,有值的情况下才进行注入

SpringBoot提供了设置注册生效调价的注解@conditional

以下是基于该注解的衍生注解

以下三个是常用的注解

@ConditionalOnProperty

这样就没有注入Country这个类

打开配置这样就注入了

@ConditionalOnMissingBean

@ConditionalOnClass

目前我环境中的web依赖是注释掉的

自动配置原理

为什么要学习自动配置原理

1.在实际开发中我们经常会定义一些公共的组件,然后提供给各个部门使用,为了使用方便我们会将公共的组件定义为starer,如果你想自定义starter,就必须先了解自定义配置原理

2.应对,面试

自动配置

遵循预定大约配置的原则,在boot程序启动后,起步依赖中的一些bean对象会自动注入到ioc容器

之前我们注入bean并不是自动注入配置

源码分析

举例:程序引入spring-boot-starter-web起步依赖,启动后,会自动向ioc容器中注入DispatcherServlet类

自动配置注解

总结

2.7之前的配置类是写在spring.factories中的,2.7-3.0spring.factories和imports都可以,3.0以后只支持imports

如何实现自动配置

根据以上实现思路写出以下2.0的脚本文件

引入

这个jar包可以完成自动配置

面试回答

自定义stater

场景

在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在SpringBoot的项目中,一般会将这些公共组件封装为SpringBoot的starter

创建自定义mybatis的starter

步骤

创建maven工程

工程1

工程2

原始mybatis的文件结构

添加依赖包

创建自动配置类

更换自己写的dmybatis-spring-boot-starter依赖,运行

http://www.lryc.cn/news/587282.html

相关文章:

  • 通信网络编程5.0——JAVA
  • 【STM32实践篇】:F407 时钟系统
  • [2025CVPR]GNN-ViTCap:用于病理图像分类与描述模型
  • XML实体扩展注入与防御方案
  • [Linux 入门] Linux 引导过程、系统管理与故障处理全解析
  • 强化学习 (11)随机近似
  • opencv python 基本操作
  • WEB渗透
  • 利用DeepSeek证明立体几何题目
  • Maven项目没有Maven工具,IDEA没有识别到该项目是Maven项目怎么办?
  • Prometheus Operator:Kubernetes 监控自动化实践
  • 05.判断日期是工作日还是周末
  • 学习python调用WebApi的基本用法(2)
  • 反射内存卡的使用
  • 进制转换结合tk可视化窗口
  • C++高频知识点(十三)
  • Wireshark的安装和基本使用
  • 理解 Robots 协议:爬虫该遵守的“游戏规则”
  • Dubbo + Spring Boot + Zookeeper 快速搭建分布式服务
  • TDengine 使用最佳实践(2)
  • 《Llama: The Llama 3 Herd of Models》预训练数据篇——论文精读笔记
  • html-input 系列
  • ConcurrentHashMap笔记
  • ROS2中的QoS(Quality of Service)详解
  • 【基础算法】倍增
  • 从“被动巡检”到“主动预警”:塔能物联运维平台重构路灯管理模式
  • 动态规划题解_将一个数字表示成幂的和的方案数【LeetCode】
  • 《夏重庆》——一场暴雨的立体诗篇(DeepSeek赏析)
  • SQL140 未完成率top50%用户近三个月答卷情况
  • Flask中的路由尾随斜杠(/)