TestNG 中使用 Guice 来进行依赖注入
2023-06-13 09:18:49 时间
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。
Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。
Guice采用Java加注解的方式进行托管对象的配置,充分利用IDE编译器的类型安全检查功能和自动重构功能,使得配置的更改也是类型安全的。
Guice提供模块对应的抽象module,使得架构和设计的模块概念产物与代码中的module类一一对应,更加便利的组织和梳理模块依赖关系,利于整体应用内部的依赖关系维护,而其他IOC框架是没有对应物的。
此外,借助privateModule的功能,可以实现模块接口的明确导出和实现封装,使得支持多数据源这类需求实现起来异常简单。
定义一个 Guice Module
这个 Guice Model 会实现 Module 接口。
然后对需要注入的类进行绑定。
绑定的语句在这里:
binder.bind(TestConfigStorage.class).toInstance(config);
binder.bind(WeChatOfficialAccountService.class).toInstance(weChatOfficialAccountService);
binder.bind(WeChatMsgService.class).toInstance(weChatMsgService);
测试中使用
因为我们需要在测试中使用,所以我们会使用 testNG 的 Guice 注解。
使用下面的语句直接注入到模块中。
然后把需要的服务,注入进来就可以了。
@Inject
protected WeChatOfficialAccountService wxService;
是不是非常简单。
相对 Junit 测试框架来说,TestNG 使用 Guice 更加方便。
如何在 Junit 中使用 Guice ,请参考文章:Junit 5 如何使用 Guice DI 中的内容。
相关文章
- 面试突击77:Spring 依赖注入有几种?各有什么优缺点?
- Spring学习笔记(二)——依赖注入
- windows10 记事本进程 键盘消息钩子 dll注入
- [译] 依赖注入在多模块工程中的应用
- SQL 报错注入详解[通俗易懂]
- soap 注入
- TheRouter 的跨模块依赖注入实现原理
- 2-Spring配置文件与依赖注入
- Spring启动过程中创建bean过程中自动注入部分的代码分析
- Asp.net core自定义依赖注入容器,替换自带容器
- @Configuration 相关依赖注入问题
- 如何用最简单的方式解释依赖注入?
- Spring依赖注入与mock
- 面试官问:Spring中有几种依赖注入的方式?你能答出来吗
- 审计一套CMS中的SQL注入
- 多种姿势花样使用Frida注入
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 调试进程 ATTACH 附着目标进程 | 读取目标函数寄存器值并存档 )
- 【Android 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )
- Angular 依赖注入错误消息:ERROR Error NullInjectorError No provider for XX
- MySQL 及 SQL 注入与防范方法
- 如何通俗的理解spring的控制反转、依赖注入、面向切面编程等等详解编程语言
- 谈谈php依赖注入和控制反转详解编程语言
- 注入利用SQLMap破解MySQL注入漏洞(sqlmapmysql)
- 尝试抵御:SQL Server注入攻击(sqlserver注入)
- 手把手教你如何向Andoird应用中注入Metasploit载荷
- PHP MySQL 防注入技巧:25字详解。(phpmysql防注入)
- MSSQL注入:危害凶猛的网络攻击武器(mssql注入是啥)
- MSSQL中防范注入攻击的有效措施(mssql注入怎么过滤)