2.3. 混合请求模式
上一节讲到了FQCN(全类名)请求模式会带来依赖定义的柔软性较差的问题,因此字符串和全类名混合的模式又应运而生了。比如刚才的Spring中的API方式声明注入点的例子就可以改为使用下面的API:
// Spring的字符串+全类名注入的API
BeanFactory injector = new FileSystemApplicationContext("depositConfiguration.xml")
this.bank = (Bank) injector.getBean("bank", Bank.class);
// 请求名为"bank"且类为Bank的依赖
|
|
而在Guice中则提供了更为安全、可维护性更高的基于注解模式的混合请求模式,此时标识符不再仅仅是一个字符串,而是一个自定义的Java5注解。例如上一节中举的Setter注入点的例子,可以用下面的方式来实现混合请求依赖:
public class Depositor {
private Bank bank;
// ……
@Inject // bank的Setter注入点
public void setBank(@BankICBC Bank bank)
{
// 请求标识符为"@BankICBC"注解并且类为Bank的依赖
//
"@BankICBC"注解是一个被绑定到BankICBC.class的自定义注解
this.bank = bank;
}
// ……
}
|
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!