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
相关推荐
秋饼10 分钟前
GPT-Live 全双工语音 API Java 服务端落地实战:事件协议、会话恢复与生产踩坑
java·ai·技术分享·后端开发
SL_staff11 分钟前
为什么企业级自动化不能只靠AI编排?——逻辑引擎在确定性业务场景中的不可替代性
java·开源·产品
Pniubi1 小时前
MySQL靠什么实现事务的?事务隔离级别有哪些?
java·数据库·mysql
一条Go2 小时前
OnCall 时段路由:跨午夜、左闭右开与「Local 不是时区」
后端·架构·github
Moment2 小时前
不会后期的我,发现了一个开源胶片神器😍😍😍
前端·后端·开源
数据库小学妹2 小时前
pgbouncer 事务池:prepared statement、临时表与会话状态
数据库·后端·postgresql
松仔log2 小时前
Kotlin中级——callbackFlow
java·前端·kotlin
三小河2 小时前
SWC 凭什么比 Babel 快 ?项目优化迁移踩坑记录
前端·后端
鶴哥只手遮天3 小时前
《Redis 8.10.3 深度剖析》系列 ·第 17 章. 一个迟到十六年的类型
redis·后端·开源
知守观3 小时前
同一个团队两套分包:DDD 四层落地后,domain 层最大的类还是 5885 行
java·后端·领域驱动设计