springboot中抽象类无法注入到ioc容器
1、背景
在写代码时,发现service接口有两个实现类,并且两个实现类中没有对类名重命名,属性注入的时候也没有使用byName或@Qualifier,正确情况下会发生多实现报错的问题,以前对这个问题进行解析过。


2、调试过程
我想通过直接从IOC容器获取接口类型的实现类,看看有几个所以添加了如下代码,发现只有一个实现类,查看没有注入的类发现是抽象类。


3、结论
通过查阅,类扫描加载部分代码,发现ClassPathScanningCandidateComponentProvider类中findCandidateComponents方法。如果是抽象类的话,类中方法上有@Lookup注解才能被注入ioc容器,注解只能使用在方法上,在方法上加入注解后,重新启动,果然报错了,说明此抽象方法被注入Ioc容器,有兴趣的朋友可以打断点看看ClassPathScanningCandidateComponentProvider在什么时候创建,findCandidateComponents什么时候调用的。



相关文章:
springboot中抽象类无法注入到ioc容器
1、背景 在写代码时,发现service接口有两个实现类,并且两个实现类中没有对类名重命名,属性注入的时候也没有使用byName或Qualifier,正确情况下会发生多实现报错的问题,以前对这个问题进行解析过。 2、调试过程 我想…...
Java关键字大冒险:深入浅出地理解Java的精髓
Java编程语言中的关键字就像是魔法咒语,每一个都有自己独特的作用。在这篇博客中,我们将探讨Java中最常见的关键字,并通过有趣的例子和形象的比喻,让你轻松掌握它们的用法。 1. public: 万能钥匙 public关键字是Java中的“万能钥…...
Android Kotlin 打开相册选择图片(多选)
1. 核心代码 打开系统相册功能,本代码使用两种方式打开本地相册,startActivityForResult 已经废弃,可以使用新的方式。 package com.example.facedetectordemoimport android.content.pm.PackageManager import androidx.appcompat.app.App…...
java学习路径
ProcessOn Mindmap...
[线程与网络] 网络编程与通信原理(四):深入理解传输层UDP与TCP协议
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …...
IEEE编程语言排行榜:深度解析编程语言的四大维度、五大趋势、六大热门与七大挑战
IEEE编程语言排行榜:深度解析编程语言的四大维度、五大趋势、六大热门与七大挑战 在信息技术领域,编程语言排行榜一直是衡量各种编程语言流行度和影响力的重要指标。IEEE(电气电子工程师协会)作为全球最具影响力的科技专业组织之…...
【C++面试50题】
以下是针对C程序员面试可能遇到的一些问题,涵盖了从基础语法、面向对象、STL、内存管理、模板、异常处理、并发编程等多个方面。 ### 基础概念与语法 1. C与C的主要区别是什么? 2. 什么是构造函数和析构函数?它们何时被调用? 3. 什…...
外汇天眼:ESMA发布针对在投资服务中使用人工智能的公司的指导意见
欧洲证券和市场管理局(ESMA),欧盟的金融市场监管机构和监督机构,发布了一份声明,为在向零售客户提供投资服务时使用人工智能技术(AI)的公司提供初步指导。 尽管人工智能的普及仍处于初期阶段&am…...
【前缀和 记忆化搜索】LeetCode1444. 切披萨的方案数
本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 动态规划 记忆化搜索 LeetCode1444. 切披萨的方案数 给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: ‘A’ ÿ…...
异常处理1--5.31
try--catch--finally格式: try{ }catch(错误类型){ }finally{ } 执行情况: package javatest5;public class test {public static void main(String[] args) {int num115;int num20;try{System.out.println("商等于:"num1/num…...
AI免费插件 批量条码大师,支持100多种条码类型
没想到在网上看到一款和之前 悟空条码 类似的条码插件,叫批量条码大师,他做的比 悟空条码 功能更强,界面更美观,特分享出来给大家。 本插件采用了BWIPJS条码库,支持110种条码、二维码的生成; 支持批量生成,…...
使用 Django 连接 MySQL 数据库
文章目录 步骤一:安装必要的库和驱动步骤二:配置数据库连接步骤三:执行数据库迁移步骤四:开始使用 MySQL 数据库创建一个模型迁移模型到数据库使用模型进行数据操作创建新记录:查询记录:更新记录࿱…...
【谷歌开发者月刊】五月内容汇总,Google I/O 点燃您的创新灵感
五月因 Google I/O 大会的成功举办而备受瞩目,我们在为开发者们带来技术更新的同时,更提供了丰富的学习资源。一起在本期月刊中回顾精彩内容,带着学习热情继续探索技术的更新与发展吧! 本月看点 精彩看点多多,请上下滑…...
wpf 实现长时间未操作自动退出登录
思路 在WPF应用程序中实现长时间未操作自动退出,主要思路是先收集用户操作行为,用一个全局变量记录用户最后操作时间,再用一个异步线程去监控用户的最后操作时间和当前时间进行比较如果超过了设定时间认为长时间未操作自动退出登录并显示相关…...
pytorch学习笔记3
标量数据 标量数据通常指的是单个数值,比如一个损失值、准确率、学习率等。这些单个的数值数据可以被记录下来,用于分析模型的训练过程、性能等。在代码中,writer.add_scalar() 的作用就是将这些标量数据添加到日志中,以便后续在可…...
开源监控工具monit安装部署
Monit 简介 Monit是一个轻量级(500KB)跨平台的用来监控Unix/linux系统的开源工具。部署简单,并且不依赖任何第三方程序、插件或者库。 Monit可以监控服务器进程、文件、文件系统、网络状态(HTTP/SMTP等协议)、远程主机、服务器资源变化等等。…...
Python 时间戳转时间
一、 10 位 时间戳 ,秒级 转换为时间 方式一: import timetimeStamp 1717149862 timeArray time.localtime(timeStamp) timeStr time.strftime("%Y-%m-%d %H:%M:%S", timeArray) print(timeStr) 输出: 2024-05-31 18:04:22方式二…...
【网络层】IP地址基础 与 子网掩码
文章目录 IP地址基础IP地址概念IP地址分类公网地址和私网地址 子网掩码子网掩码作用默认子网掩码网络地址、主机地址、广播地址 IP地址基础 IP地址概念 IP地址:IP Address 在网络中,通信节点都需要有一个IP地址 IP地址以点分十进制表示,有…...
Cholesky分解(A=L * L^T)
Cholesky分解是一种用于解线性方程组和计算矩阵平方根的算法,特别适用于对称正定矩阵。这种方法相比于其他解法(如高斯消元法)在数值稳定性上通常有更好的表现,并且能够有效地利用矩阵的对称性和正定性。下面简要介绍如何使用Chol…...
2024大模型新应用井喷即将到来,算力问题如何解决?
#大模型新应用 #NLP #智合同 随着人工智能技术的加速演进,AI大模型已成为全球科技竞争的新高地、未来产业的新赛道、经济发展的新引擎。大模型的快速发展,特别是在自然语言处理(NLP)和计算机视觉(CV)等…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
