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

spring:使用注解@获取第三方bean实例

因为第三方给的bean实例封装在jar包中,无法通过给类添加注解@Component后再获取bean实例,我们可以通过给方法添加注解@Bean,获取bean实例(方法的返回值就是第三方bean实例)。

可获取第三方bean的类

package com.annotation.thirdjar;import java.util.Date;import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;/*** @copyright 2003-2025* @author    qiao wei* @date      2025-04-16* @version   1.0* @brief     * @history   name*            date*            brief*/
@Component(value = "factory")
public class DateFactory {public DateFactory() {}@Bean(name = "getDate001")public Date getDate() {return new Date();}
}

配置类,将DateFactory加载。

package com.annotation.config;import org.springframework.context.annotation.ComponentScan;/* ** @copyright 2003-2025* @author    qiao wei* @date      2025-06-11* @version   1.0* @brief     * @history   name*            date*            brief*/
@ComponentScan(basePackages = "com.annotation")
public class Config {
}

测试类:

package com.annotation.thirdjar;import java.util.Date;import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;import com.annotation.config.Config;/* ** @copyright 2003-2025* @author    qiao wei* @date      2025-06-11* @version   1.0* @brief     * @history   name*            date*            brief*/
class DateFactoryTest {@Testpublic void test01() {ApplicationContext context =new AnnotationConfigApplicationContext(Config.class);Date date = (Date) context.getBean("getDate001");System.out.println(date);}
}

运行结果:

 方框内为加载包com.annotation中其它类的运行结果,最后一行是获取第三方类Date。

类结构如下图:

http://www.xdnf.cn/news/13430.html

相关文章:

  • MATLAB-磁偶极子的空间磁场强度仿真
  • Linux:多线程---线程控制(线程创建线程等待线程终止)
  • DSPy Prompt自动生成最佳实践
  • 包含30个APP移动端网站UI的psd适用于餐厅咖啡店面包店快餐店
  • Kotlin基础语法四
  • Spring MVC扩展与SSM框架整合
  • 不同厂商保障UEFI/BIOS安全的技术与机制详解
  • 【机器学习-线性回归-7】中心极限定理在机器学习线性回归中的重要性
  • 【leetcode】125.验证回文串
  • Electron-vite【实战】MD 编辑器 -- 大纲区(含自动生成大纲,大纲缩进,折叠大纲,滚动同步高亮大纲,点击大纲滚动等)
  • 【读论文】Closed-loop Diffusion Control of Complex Physical Systems 闭环扩散控制系统
  • 汽车制造通信革新:网关模块让EtherCAT成功对接CCLINK
  • 神经网络全景图:五大核心架构详解与本质区别
  • CUDA 与 cuDNN 免登录下载政策详解(基于官方权威信息)
  • docker和docker-compose的版本对应关系怎么看?
  • CVE-2017-12615源码分析与漏洞复现(Tomcat 任意文件上传)
  • DAY 46 超大力王爱学Python
  • 矩阵批量剪辑源码开发,OEM贴牌
  • SQL进阶之旅 Day 25:高并发环境下的SQL优化
  • 04__C++特殊的函数语法
  • 摄影入门:相机基本参数解析
  • MES生产工单管理系统,Java+Vue,含源码与文档,高效统筹生产流程,精准管控工单执行与进度
  • 为 Nginx 配置 HTTPS(以 n8n 为例)完整教程【CentOS 7】
  • 【编译工具】(调试)Chrome DevTools + Postman:调试组合如何让我的开发效率提升400%?
  • 蛋糕烘焙小程序源码介绍
  • ubuntuserver24.04版本:redis编译安装时出现工具、依赖库问题解决方法
  • 「Java基本语法」运算符与表达式
  • Java多线程实现之线程调度详解
  • 35. 搜索插入位置
  • OpenLayers 可视化之热力图