【SpringBoot3】Bean管理

1.Bean扫描

1.1传统Spring

  • 标签:<context:component-scan base-package="com. example "/>
  • 注解:@ComponentScan(basePackages = "com.example")

 1.2SpringBoot

SpringBoot默认扫描启动类所在的包及其子包

 

2.Bean注册

 

 如果要注册bean对象来自于第三方(不是自定义的,可能无法修改,则不能为添加注解),是无法用 @Component 及衍生注解声明bean

解决

  • 2.1@Bean

2.1.1下载jar包

 

 2.1.2导入依赖

 

2.1.3配置类

如果要注册第三方bean,建议在配置类中集中注册 

  • 2.2@Import

2.2.1导入配置类

 

2.2.2导入 ImportSelector 接口实现类 

 

 

package com.aaa.config;import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;public class CommonImportSelector implements ImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {//读取配置文件的内容List<String> imports = new ArrayList<>();InputStream is = CommonImportSelector.class.getClassLoader().getResourceAsStream("common.imports");BufferedReader br = new BufferedReader(new InputStreamReader(is));String line = null;try {while((line = br.readLine())!=null){imports.add(line);}} catch (IOException e) {throw new RuntimeException(e);} finally {if (br!=null){try {br.close();} catch (IOException e) {throw new RuntimeException(e);}}}return imports.toArray(new String[0]);}
}

 

 

补充知识:

1、组合配置

 

 

2、注入配置文件信息的应用 

3.注册条件

SpringBoot提供了设置注册生效条件的注解 @Conditional

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/303628.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统一用安卓Studio修改项目包名

可以逃跑&#xff0c;可以哭泣&#xff0c;但不可以放弃 --《鬼灭之刃》 修改项目包名 1&#xff09;选中项目中药修改的包名&#xff1a; 2)目结构显示方式&#xff0c;取消 Compact Middle Packages 选项&#xff1b; 3)右键要修改的包名&#xff0c;选择 Refactor —— Re…

力矩,转矩,扭矩的理解——SunTorque智能扭矩系统

智能扭矩系统-智能拧紧系统-扭矩自动控制系统-SunTorque 力矩、转矩和扭矩是力学中常用的概念&#xff0c;它们描述了力的转动效果。虽然这三个词经常被互换使用&#xff0c;但它们之间实际上存在细微的差别。本文将从力学的基本原理出发&#xff0c;深入剖析这三个概念的含义…

【记录】LangChain|Ollama结合LangChain使用的速通版(包含代码以及切换各种模型的方式)

官方教程非常长&#xff0c;我看了很认可&#xff0c;但是看完了之后呢就需要一些整理得当的笔记让我自己能更快地找到需求。所以有了这篇文章。【写给自己看的&#xff0c;里面半句废话的解释都没有&#xff0c;如果看不懂的话直接看官方教程再看我的】 我是不打算一开始就用…

比 Nest.js 更优雅的 TS 控制反转策略 - 依赖查找

一、Cabloy5.0 内测预告 Cabloy5.0 采用 TS 对整个全栈框架进行了脱胎换骨般的大重构&#xff0c;并且提供了更加优雅的 ts 控制反转策略&#xff0c;让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比&#xff1a; 后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts…

Goingpub国自然基金-免费查询

可进行年份、学部、项目类别等检索&#xff0c;支持生成主题词汇总分析报告。 最最最关键&#xff0c;免费&#xff0c;只需要你注册登录一下&#xff0c;防止被爬虫侵扰。 界面简单&#xff0c;实用&#xff0c;支持模糊搜索&#xff0c;包含最新2023年数据&#xff0c;共56…

Xshell连接CentOS7教程

一、在CentOS7中单击右键&#xff0c;打开命令行终端&#xff1a; 二、输入ifconfig命令之后&#xff0c;找到CentOS的ip地址&#xff1a; 三、打开Xshell&#xff0c;命令行中输入 “ssh 用户名上述查到的ip地址 ”&#xff0c;之后输入密码即可连接成功&#xff1a; 四、测试…

做了多年前端,有没有想在python,go,nodejs,.net,java,c++中学一门后端,推荐

作为一名经验丰富的前端开发者&#xff0c;选择学习后端技术是一个重要的职业发展决策。Python、Go、Node.js、.NET、Java和C都是强大的后端开发语言&#xff0c;每门语言都有其特定的优势和应用场景。以下是对这些技术的分析&#xff0c;以帮助你做出选择&#xff1a; 目录 …

「JavaEE」初识进程

初识进程 &#x1f349;进程&#x1f34c;操作系统的进程管理 &#x1f349;PCB 重要属性&#x1f34c;进程的身份标识&#x1f34c;内存指针&#x1f34c;文件描述符表&#x1f34c;进程的状态&#x1f34c;优先级&#x1f34c;记账信息&#x1f34c;上下文 &#x1f349;内存…

Data Shapley Value 笔记

本文为 Data Shapley: Equitable Valuation of Data for Machine Learning 的阅读笔记&#xff0c;涉及论文中的 Data Shapley Value 计算公式、两种实现算法、实验应用部分的梳理。 为理解 Data Shapley Value&#xff0c;本文首先讨论 Shapley Value的相关内容&#xff0c;利…

深入了解与全面解析华为认证(HCIA/HCIP/HCIE)

一、网络行业技术认证 网络行业对于技术评定一般分为两种&#xff0c;一种是企业认证&#xff0c;一种是国家认证 企业认证属于技术认证&#xff0c;在国内的互联网企业都会承认&#xff0c;用于评定一个人的技术等级或者企业招投标的资质。 网络行业认证最好的有三种&#…

SpringBoot内容协商快速入门Demo

1.什么内容协商 简单说就是服务提供方根据客户端所支持的格式来返回对应的报文&#xff0c;在 Spring 中&#xff0c;REST API 基本上都是以 json 格式进行返回&#xff0c;而如果需要一个接口即支持 json&#xff0c;又支持其他格式&#xff0c;开发和维护多套代码显然是不合理…

Python 全栈体系【四阶】(二十五)

第五章 深度学习 三、计算机视觉基本理论 11. 图像梯度处理 11.1 什么是图像梯度 图像梯度计算的是图像变化的速度。对于图像的边缘部分&#xff0c;其灰度值变化较大&#xff0c;梯度值也较大&#xff1b;相反&#xff0c;对于图像中比较平滑的部分&#xff0c;其灰度值变化…

elementui 实现一个固定位置的Pagination(分页)组件

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、elementui 左侧导航菜单栏与main区域联动 三、elementui 中设置图片的高度并支持PC和手机自适应 四、 elementui 实现一个固定位置的Pagination&#xff08;分页&#xff09;组件 文章目录 系列文章目录…

基于“PLUS模型+”生态系统服务多情景模拟预测

工业革命以来&#xff0c;社会生产力迅速提高&#xff0c;人类活动频繁&#xff0c;此外人口与日俱增对土地的需求与改造更加强烈&#xff0c;人-地关系日益紧张。此外&#xff0c;土地资源的不合理开发利用更是造成了水土流失、植被退化、水资源短缺、区域气候变化、生物多样性…

HTTP 摘要认证

文章目录 一、什么是摘要认证二、工作流程三、实例演示 一、什么是摘要认证 摘要认证&#xff0c;即 Digest Access Authentication&#xff0c;是一种HTTP身份验证机制&#xff0c;用于验证用户的身份。相较于基本认证&#xff08;Basic Authentication&#xff09;使用用户名…

【随笔】Git 高级篇 -- 相对引用2 HEAD~n(十三)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

Mongodb入门--头歌实验MongoDB 数据库基本操作

一、数据库创建 任务描述 本关任务&#xff1a;创建数据库。 相关知识 本关评测是在 Linux 环境下进行的&#xff0c;MongoDB 的安装与配置测评系统均已默认完成。 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.如何连接数据库&#xff1b; 2.如何创建数据库。 连接数…

sqlmap(四)案例

一、注入DB2 http://124.70.71.251:49431/new_list.php?id1 这是墨者学院里的靶机&#xff0c;地址&#xff1a;https://www.mozhe.cn/ 1.1 测试数据库类型 python sqlmap.py -u "http://124.70.71.251:49431/new_list.php?id1" 1.2 测试用户权限类型 查询选…

Vue3 ts环境下的PropType

简介 在Typscript中&#xff0c;我们可以使用PropType进行类型的推断与验证。在日常的开发中我们常常会遇到下面这样的场景&#xff1a; 我们通过request请求从服务端获取了一条数据&#xff0c;数据是个Array的格式&#xff0c;Array中的每个元素又是一个对象&#xff0c;像下…

Web前端—属性描述符

属性描述符 假设有一个对象obj var obj {a:1 }观察这个对象&#xff0c;我们如何来描述属性a&#xff1a; 值为1可以重写可以遍历 我们可以通过Object.getOwnPropertyDescriptor得到它的属性描述符 var desc Object.getOwnPropertyDescriptor(obj, a); console.log(desc);我…