spring有多个对象时如何注入

java 复制代码
@Bean
	public ReactAgent chatbotReactAgent(ChatModel chatModel,
			ShellTool2 shellTool,
			ToolCallback executePythonCode,
			ToolCallback viewTextFile,
			MemorySaver memorySaver) {
		return xxx;

这个里面有两个ToolCallback,如何注入

java 复制代码
@Bean
	public ToolCallback executePythonCode() {
		return FunctionToolCallback.builder("execute_python_code", new PythonTool())
				.description(PythonTool.DESCRIPTION)
				.inputType(PythonTool.PythonRequest.class)
				.build();
	}

	// 把框架提供的 ReadFileTool 包装成名为 view_text_file 的读文件工具。
	@Bean
	public ToolCallback viewTextFile() {
		ReadFileTool readFileTool = new ReadFileTool();
		return FunctionToolCallback.builder("view_text_file", readFileTool)
				.description("View the contents of a text file. The file_path parameter must be an absolute path. " +
						"You can specify offset and limit to read specific portions of the file. " +
						"By default, reads up to 500 lines starting from the beginning of the file.")
				.inputType(ReadFileTool.ReadFileRequest.class)
				.build();
	}

spring对象注入

1.先按类型找;

2.如果同类型有多个,再按 Bean 名区分,默认函数名就是Bean的名字,也可以指定;

java 复制代码
@Bean("pythonToolCallback")
public ToolCallback executePythonCode() {
    return FunctionToolCallback.builder("execute_python_code", new PythonTool())
            .description(PythonTool.DESCRIPTION)
            .inputType(PythonTool.PythonRequest.class)
            .build();
}

3.如果还分不清,就用 @Qualifier 明确指定。

java 复制代码
@Qualifier("pythonToolCallback") ToolCallback executePythonCode
相关推荐
shuoshuohaohao1 小时前
MyBatis 小知识点
java·spring·mybatis
海上小飞龙1 小时前
【KMP算法-下篇】同一道题:Java 库函数 2600 微秒,手写 KMP 16 微秒
java·开发语言·算法
谢亮_vipxieliang2 小时前
泛型擦除、通配符与 PECS 一次讲透
java·面试
八解毒剂2 小时前
【计组】中央处理器CPU
java·开发语言·计算机组成原理
打工仔折腾 AI3 小时前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
ZealSinger3 小时前
Java虚拟线程上线后瓶颈转移到哪看三层
java·开发语言·firefox
2601_961133283 小时前
盘立方软件指标文华期货公式下载
java
蜗牛互联网4 小时前
长任务多Agent共享文件系统的Manifest交接模式
java·人工智能·后端
Sirens.4 小时前
Java并发锁详解:六类锁策略与 synchronized 底层原理
java·前端·算法
sunshine22 girl5 小时前
Java学习五 面向对象高级5 内部类1
java·学习