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

Spring 外部jar包Bean自动装配

Spring 外部jar包Bean自动装配

背景介绍

公共代码模块被作为jar包引入业务项目,前者定义的bean即使添加了@Component注解由于不会被扫描到也就无法被Spring管理。此处通过Spring SPI机制来完成

使用 spring.factories

  1. 在外部 jar 包中创建 spring.factories 文件: 在外部 jar 包的 src/main/resources/META-INF/ 目录下创建 spring.factories 文件。
  2. 配置 spring.factories 文件: 在 spring.factories 文件中,添加需要自动配置的类,例如:
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.huakai.springenv.utils.SpringUtil
  1. 配置类: 确保你的配置类是一个有效的 Spring 配置类,并且可以正确配置所需的 Beans。
package com.huakai.springenv.utils;import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;/*** @author huakai*/
@Component
public class SpringUtil implements ApplicationContextAware {/*** 上下文对象实例*/private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;}/*** 获取applicationContext* @return*/public static ApplicationContext getApplicationContext() {return applicationContext;}/*** 通过name获取 Bean.* @param name* @return*/public static Object getBean(String name){return getApplicationContext().getBean(name);}
}

这样,当你的 Spring Boot 应用启动时,会自动扫描并加载 spring.factories 文件中指定的配置类,并将其作为 Spring 配置的一部分。

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

相关文章:

  • 2通道音频ADC解码芯片ES7243L、ES7243E、ES7243,用于低成本实现模拟麦克风转换为IIS数字话筒
  • uniapp跨域问题解决
  • [C++][ProtoBuf][Proto3语法][一]详细讲解
  • 千古雄文《渔樵问对》原文、译文、解析
  • uniapp 开发备忘录-防坑指南
  • Simple_ReAct_Agent
  • window wsl安装ubuntu
  • postmessage()在同一域名下,传递消息给另一个页面
  • 初始redis:在Ubuntu上安装redis
  • 生物素结合金纳米粒子(Bt@Au-NPs ) biotin-conjugated Au-NPs
  • LeetCode热题100刷题9:25. K 个一组翻转链表、101. 对称二叉树、543. 二叉树的直径、102. 二叉树的层序遍历
  • PyJWT,一个基于JSON的轻量级安全通信方式的python库
  • Golang | Leetcode Golang题解之第223题矩形面积
  • 新手怎么使用GitLab?
  • 表情包原理
  • 技术难点思考SpringBoot如何集成Jmeter开发
  • 如何快速使用C语言操作sqlite3
  • 网络模型介绍
  • Codeforces Round #956 (Div. 2) and ByteRace 2024
  • 域名、网页、HTTP概述
  • Redisson分布式锁、可重入锁
  • 适合宠物饮水机的光电传感器有哪些
  • 『Python学习笔记』Python运行设置PYTHONPATH环境变量!
  • 2024年06月CCF-GESP编程能力等级认证Python编程三级真题解析
  • 代码随想录算法训练营:20/60
  • Apache Seata应用侧启动过程剖析——RM TM如何与TC建立连接
  • Origin 的使用
  • MySQL相关知识点
  • 第4章 Vite模块化与插件系统(二)
  • 前端传到后端的data数组中有些属性值为空