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

spring boot自动装配及自动装配条件判断

第一步需要在pom.xml文件指定需要导入的坐标

要是没有自动提示需要检查maven有没有

实现代码

/*springboot第三方自动配置实现方法
* 什么是自动配置 自动配置就是springboot启动自动加载的类不需要在手动的控制反转自动的加入bean中
*
* *//*第一种方案包扫描 不推荐因为繁琐自己也没有试成功过加在启动类上
@ComponentScan({"com.example","com.example.comtihmabc2"}*//*
第二种方案@Import注解导入加在启动类上
@Import({HeaderParser.class})  导入普通类交给I0C容器管理@Import({HeaderConfig.class})//导入配置类,交给I0C容器管理
示例代码:
@Configuration
public class HeaderConfig {@Beanpublic HeaderParser headerParser(){ return new HeaderParser();}@Beanpublic HeaderGenerator headerGenerator(){ return new HeaderGenerator(); }
}
@Import({MyImportSelector.class})//导入Importselector接口实现类
第三方所实现的接口ImportSelector 里面清楚的写明白了需要导入的类位置
示例代码:
public class MyImportSelector implements ImportSelector {public String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[]{"com.example.HeaderConfig"};}
*//*第三种方案自定义注解@EnableHeaderConfig加在启动类上
第三方自定义注解示例代码:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Import(MyImportSelector.class)//MyImportSelector.class表示所要导入的类可以是配置类
public @interface EnableHeaderConfig {
}
* */@SpringBootApplication
public class ComTihmaBc2Application {public static void main(String[] args) {SpringApplication.run(ComTihmaBc2Application.class, args);}}

执行代码示例

@SpringBootTest
class ComTihmaBc2ApplicationTests {//    //1.获取I0c容器对象
//    @Autowired
//    ApplicationContext applicationContext;@Autowired //手动依赖注入ApplicationContext applicationContext ;//    @Test
//    void contextLoads() {
//        applicationContext.getBean(HeaderParser.class).parse();
//    }@Testvoid contextLoads1() {applicationContext.getBean(HeaderGenerator.class).generate();}}自动装配条件判断
/*springboot自动配置条件判断注解满足条件才会执行  通常声名在类上或者方法上
* springboot底层自动配置就是用此方法
* */
@Configuration
public class HeaderConfig {//注解1/*判断环境中是否有对应字节码文件,才注册bean到I0C容器。可通过类型value或者名字name来进行判断示例1 : @ConditionalOnClass(name ="io.jsonwebtoken.Jwts")  名字name示例2 : @ConditionalOnClass(value = HeaderParser.class )  通过类型value*///注解2/* @ConditionalOnMissingBean 当不存在当前类型的bean时,才声明该bean才加入ioc容器 ---也可以指定类型(value属性)或 名称(name属性)没有就是当前 比如@ConditionalOnMissingBeanpublic HeaderParser headerParser(){ return new HeaderParser();}*/
/*    @ConditionalOnProperty(name = "name",havingValue = "itheima")
配置文件中存在对应的属性和值,才注册bean到I0C容器比如application.properties 配置文件中
# 应用服务 WEB 访问端口
server.port=8080
name=itheima
有就可以执行*/@Bean@ConditionalOnProperty(name = "name",havingValue = "itheima")public HeaderParser headerParser(){ return new HeaderParser();}@Beanpublic HeaderGenerator headerGenerator(){ return new HeaderGenerator(); }
}

相关文章:

spring boot自动装配及自动装配条件判断

第一步需要在pom.xml文件指定需要导入的坐标 要是没有自动提示需要检查maven有没有 实现代码 /*springboot第三方自动配置实现方法 * 什么是自动配置 自动配置就是springboot启动自动加载的类不需要在手动的控制反转自动的加入bean中 * * *//*第一种方案包扫描 不推荐因为繁琐…...

LeetCode--2298. 周末任务计数

文章目录 1 题目描述2 测试用例3 解题思路 1 题目描述 表: Tasks ------------------- | Column Name | Type | ------------------- | task_id | int | | assignee_id | int | | submit_date | date | -------------------task_id 是该表的主键(具有唯一值…...

从零开始学习Netty - 学习笔记 - NIO基础 - ByteBuffer: 简介和基本操作

NIO基础 1.三大组件 1.1. Channel & Buffer Channel 在Java NIO(New I/O)中,“Channel”(通道)是一个重要的概念,用于在非阻塞I/O操作中进行数据的传输。Java NIO提供了一种更为灵活和高效的I/O处理方…...

Chatgpt润色文章“咒语”

文章目录 前言一、汉译英二、语法校正三、润色英文段落结构和句子逻辑 前言 一些Chatgpt润色文章常用的命令。 一、汉译英 I am a researcher studying Aerospace Manufacturing and now trying to revise my manuscript which will be submitted to the journal of Nature.I…...

【OpenGL教程2】 简单案例介绍Python 中的 OpenGL

目录 一、介绍二、安装三、编码练习四、结论 一、介绍 在本教程中,我们将学习如何在 Python 中使用PyOpenGL库。OpenGL是一个图形库,受Windows、Linux和MacOS等多个平台支持,也可用于多种其他语言;然而,这篇文章的范围…...

评估方法:CMMI/能力成熟度模型集成

一、什么是CMMI CMMI,全称为Capability Maturity Model Integration,即能力成熟度模型集成。它是由美国卡内基梅隆大学软件工程研究所研发的过程改进模型,也是国际上用于评价软件企业能力成熟度的一项重要标准。 CMMI的目的是帮助软件企业对…...

Gin框架: HTML模板渲染之配置与语法详解

Gin的HTML模板配置 1 &#xff09;单一目录的配置 配置模板目录&#xff0c;在与main.go同级下, 新建目录&#xff0c;下面二选一&#xff0c;仅作举例, 这里选择 tpls templatestpls 在 tpls 目录下新建 news.html <!-- 最简单的 --> <h1>News Page</h1>&l…...

.NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库

一、效果 记录日志为文档 记录日志到数据库 二、添加NuGet包 三、log4net.config代码配置 <?xml version"1.0" encoding"utf-8" ?> <log4net><!-- Debug日志 --><appender name"RollingFileDebug" type"log4net…...

Day36 贪心算法 part05

划分字母区间 一个字母区间仅有几个字母前一个字母区间有的字母后面都没有 合并区间 天才举一反三写出来了...

C#计算矩形面积:通过定义结构 vs 通过继承类

目录 一、涉及到的知识点 1.结构 2.结构和类的区别 3.继承 4.使用类继承提高程序的开发效率 5.属性 &#xff08;1&#xff09;属性定义 &#xff08;2&#xff09;get访问器 &#xff08;3&#xff09;set访问器 6. 属性和字段的区别 二、实例&#xff1a;通过定义…...

【复现】Panalog大数据日志审计系统 RCE漏洞_51

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中&#xff0c;针对网络流…...

react【五】redux/reduxToolkit/手写connext

文章目录 1、回顾纯函数2、redux2.1 redux的基本使用2.2 通过action修改store的数值2.3 订阅state的变化2.4 目录结构2.5 Redux的使用过程2.6 redux的三大原则2.7 Redux官方图 3、redux在React中的使用4、react-redux使用4.1 react-redux的基本使用4.2 异步请求 redux-thunk4.3…...

.NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2

前言 很多同学都不愿给电脑设动态壁纸&#xff0c;其中有个重要原因就是嫌它占资源过多。今天大姚分享一个.NET开源、免费&#xff08;MIT license&#xff09;的一个小而快并且功能强大的 Windows 动态桌面软件&#xff0c;支持视频和网页动画播放&#xff1a;DreamScene2。 …...

jsp计算机线上教学系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 计算机线上教学系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5…...

RabbitMQ的高可用机制

RabbitMQ通过多种机制提供高可用性(HA)支持&#xff0c;以确保消息系统的稳定性和可靠性。下面将详细介绍这些机制&#xff0c;并提供代码示例。 集群&#xff08;Clustering&#xff09; RabbitMQ的集群提供了高可用性和负载均衡。集群中的节点共享同一个Erlang分布式数据库…...

人机协同中的贝叶斯和马尔可夫

人机协同中的马尔可夫链是指在人与机器之间协同工作过程中&#xff0c;可能涉及到的状态转移概率模型。马尔可夫链是一种数学模型&#xff0c;描述了在给定当前状态下&#xff0c;未来状态的概率分布只依赖于当前状态&#xff0c;而与过去状态无关的随机过程。在人机协同工作中…...

STM32的SDIO

一.SDIO简介 SDIO&#xff0c;全称Secure Digital Input/Output&#xff0c;是一种用于在移动设备和嵌入式系统中实现输入/输出功能的接口标准。它结合了SD卡的存储功能和I/O功能&#xff0c;允许设备通过SD卡槽进行数据输入输出和外围设备连接。 SDIO接口通常被用于连接各种…...

Unity中的Lerp插值的使用

Unity中的Lerp插值使用 前言Lerp是什么如何使用Lerp 前言 平时在做项目中插值的使用避免不了&#xff0c;之前一直在插值中使用存在误区&#xff0c;在这里浅浅记录一下。之前看的博客或者教程还多都存在一个“永远到达不了&#xff0c;只能无限接近”的一个概念。可能是之前脑…...

年后上来面了一个来字节要求月薪23K,明显感觉他背了很多面试题...

最近有朋友去字节面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&…...

代码随想录算法训练营DAY20 | 二叉树 (8)

一、LeetCode 701 二叉搜索树中的插入操作 题目链接&#xff1a; 701.二叉搜索树中的插入操作https://leetcode.cn/problems/insert-into-a-binary-search-tree/description/ 思路&#xff1a;见缝插针罢辽。 class Solution {public TreeNode insertIntoBST(TreeNode root, i…...

问题1 开播后 观众端第一次进直播间 直播间没有画面 需要 主播重新进直播页面 观众端才有画面问题2 上面的流程走完 观众重新进直播间 直播间看不到画面问题3 不能多观众收看直播啊

需要docker srs webrtc websockdocker cmd 中 启动 srsset CANDIDATElongwen.natapp1.cc && docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8000:8000/udp -p 8000:8000/tcp --env CANDIDATE%CANDIDATE% --env SRS_RTC_TCP_ENABLEDon --env SRS_RTC_TCP_PORT8000 …...

嵌入式开发中全局变量的优化实践与替代方案

1. 嵌入式开发中的全局变量困境作为一名在嵌入式领域摸爬滚打多年的工程师&#xff0c;我见过太多因为滥用全局变量而陷入维护噩梦的项目。记得刚入行时接手过一个智能家居控制器的代码库&#xff0c;打开项目一看&#xff0c;光是extern声明的全局变量就有200多个&#xff0c;…...

【优化求解】用于密集子图和密集子矩阵问题的凸优化附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f447; 关注我领取海量matlab电子书和数学建模资料&#x1f34a;个人信条&#xff1a;格物致知,完整Matl…...

OpenClaw+千问3.5-9B学术助手:自动整理参考文献与生成综述

OpenClaw千问3.5-9B学术助手&#xff1a;自动整理参考文献与生成综述 1. 为什么需要自动化文献处理 去年冬天&#xff0c;当我面对堆积如山的PDF文献时&#xff0c;突然意识到传统文献管理方式已经跟不上现代研究的节奏。手动标注重点、复制粘贴引用、反复切换不同文献工具—…...

团队协作文件总乱?试试用Nas-Cab+Cpolar搭建私有共享网盘,5分钟搞定远程文件同步

团队协作文件总乱&#xff1f;5分钟搭建私有共享网盘的全流程指南 每次收到同事发来的"最终版_v3.docx"时&#xff0c;是不是都想把键盘摔了&#xff1f;我们团队曾经也深陷文件版本混乱的泥潭&#xff0c;直到发现这套组合方案——用Nas-Cab搭建本地文件中心&#x…...

Blender3mfFormat插件全攻略:从安装配置到3D打印工作流优化

Blender3mfFormat插件全攻略&#xff1a;从安装配置到3D打印工作流优化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender3mfFormat插件是一款专为Blender设计的3MF…...

jsTree终极问题排查指南:10个开发者必须掌握的实用技巧

jsTree终极问题排查指南&#xff1a;10个开发者必须掌握的实用技巧 【免费下载链接】jstree jquery tree plugin 项目地址: https://gitcode.com/gh_mirrors/js/jstree jsTree是一款功能强大的jQuery树形插件&#xff0c;广泛应用于Web开发中构建交互式树形结构。本文将…...

Fast-Check高级技巧:如何构建自定义Arbitrary生成器的完整指南

Fast-Check高级技巧&#xff1a;如何构建自定义Arbitrary生成器的完整指南 【免费下载链接】fast-check Property based testing framework for JavaScript (like QuickCheck) written in TypeScript 项目地址: https://gitcode.com/gh_mirrors/fa/fast-check Fast-Chec…...

响应 (接上文)

在我们前⾯的代码例⼦中&#xff0c;都已经设置了响应数据,Http响应结果可以是数据,也可以是静态⻚⾯,也可 以针对响应设置状态码,Header信息等.返回静态⻚⾯创建前端⻚⾯index.html(注意路径)html代码如下:<!DOCTYPE html> <html lang"en"> <head>…...

5分钟部署!《崩坏:星穹铁道》全自动助手终极指南

5分钟部署&#xff01;《崩坏&#xff1a;星穹铁道》全自动助手终极指南 【免费下载链接】March7thAssistant 崩坏&#xff1a;星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否每天花费大量时间在《崩坏&#xff1a…...