依赖注入及AOP简述(七)——FQCN请求模式
2.2. FQCN请求模式
为了弥补纯字符串请求模式中的类型安全问题,全类名(FQCN)请求模式就应运而生了。其思想便是,在向容器请求依赖对象的时候,不是通过字符串的标识符、而是通过被请求的依赖的全类名来定位依赖。这样如果开发者误将全类名标识符写错的话,在编译时立即会提醒“类不存在”。并且,如果使用Eclipse等IDE开发工具的话,用其提供的自动完整代码的功能就会轻松地将依赖的全类名标识符定义到代码中。
在第一章的“3.3 依赖注入框架简介”一节中我们提到了Google Guice框架是一个解决了类型安全问题的依赖注入框架,我们来看一段Guice中定义注入点的例子。
|
在Guice框架中,如果使用注解的方式定义注入点,我们可以使用@Inject。当Guice框架去解析这个注解的时候,会将Bank类的实现类自动地设定到注入点。也就是说如果容器中有且只有一个Bank类的实现类,Guice会将其实例化后分发给依赖者。
|
但是如果容器中有多个Bank类的实现类,比如还有一个BankCMB的实现类,此时Guice框架就不能正确识别究竟应把哪一个实现的依赖对象提供给依赖者了,这就是全类名请求模式的一个缺陷,即其会将依赖对象的接口限定为只有一个实现,关于这个问题的解决方案我们稍后会在“混合请求模式”中介绍。
在第一章的“3.1 依赖注入的原理”一节中我们讲到,注解并不是声明注入点的唯一方式,如果使用了API方式声明注入点,则Spring、Seam、Guice都有各自的API能够应用这种全类名形式的依赖注入。例如:
|
相关文章
- EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下?
- DLL注入-APC注入
- DLL注入—— 远程线程
- 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入
- Spring依赖注入
- PHP依赖注入,控制反转,反射、Ioc容器和服务提供者各个概念的理解和使用
- Spring 与依赖注入
- 用Guice+Peaberry实现OSGi环境下的JIT注入
- spring + groovy 实现动态代码注入执行
- ASP.NET Core - 依赖注入(二)
- MVC使用StructureMap实现依赖注入Dependency Injection
- btslab全攻略——注入之sql注入认证
- Spring源码解析(五)Spring 加载bean 依赖注入
- 【Web漏洞探索】SQL注入漏洞
- 依赖注入及AOP简述(三)——依赖注入的原理
- WhartonBrooks将为Windows Phone市场注入新的活力
- ABP理论学习之依赖注入
- Spring 注入简介
- 【安全警告】Oracle 12c 多租户的SQL注入高危风险防范
- java-sql注入攻击
- sql注入攻击及其防止办法
- Spring中bean的注入方式
- SQL注入(一)联合查询 报错注入
- Web安全之SQL注入攻击
- Unity 依赖注入
- 控制反转和依赖注入模式
- 什么是IOC(控制反转)、DI(依赖注入)
- 重新认识被人遗忘的HTTP头注入