12|实战中的TDD:RESTful API的开发框架

2022-04-12 徐昊
《徐昊·TDD 项目实战 70 讲》
课程介绍


讲述:徐昊

时长:大小2.61M


你好,我是徐昊。从今天开始,让我们进入实战中的 TDD 环节。也就是使用 TDD 的方式,去实现我们工作中常用的技术框架。
之所以选择常用的技术框架,而不虚构某个业务系统,主要是因为 TDD 的难点首先在于理解需求,并将需求分解为功能点。虚构的业务系统,难以详尽描述所有的业务假设(功能上、组织上、运营方式上等),不利于你跟随题目自行练习。而使用常用的技术框架,由于你对于大体的功能及其所解决的问题,已经有所了解。我也可以避免无谓的啰嗦。

RESTful API 的开发框架

第一个场景是支撑 RESTful API 的开发框架,你可以将它想象成 mini 版本的 Dropwizard 或者 Spring MVC。功能范围包含一个依赖注入容器(Dependency Injection Container/IoC Container)和一个支持 RESTful API 构建的 Web 框架。
我们会以 Jakarta EE 中的 Jakarta Dependency Injection 和 Jakarta RESTful Web Services 为主要功能参考,并对其适当简化,...

展开全文
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

精选留言

  • aoe
    2022-04-14
    笔记 https://wyyl1.com/post/19/07/ 希望留言可以支持 Markdown 格式,这样更容易阅读 ## 功能点分解 ### happy path 自定义依赖注入的 Annotation - @Inject:标识这个类可以被容器管理(类似 Spring 的 @Component) - @Named:可以设置 String 类型的 tag 做唯一标识 - @Scope:标识容器创建的对象是单例、多例的标签 - 支持自定义 Annotation 被容器加入依赖管理(组合 @Inject、@Named、@Scope 实现自定义功能) - @Constructor:Constructor 注入标签 - @Field:Field 注入标签 - @Method:方法注入标签 将标记的类找到备用 - 扫描项目中所有的类 - 提取出所有标记了依赖注入标签的类的信息 - 类名称 - 类的完整路径 - 类的所有构造器 - 类上的所有 Annotation - 字段上的所有 Annotation - 方法上的所有 Annotation - 解析容器支持的自定义 Annotation - 将自定义 Annotation 转换为普通的 Annotation - 收集容器相关的 Annotation 类的信息 - 将这些类的信息存储在容器中 代理类 - 通过代理类实现 Provided 解决循环依赖问题 通过容器获取实例 - 根据 Class 在容器中找到对应的类,返回实例 - 根据 @Named 中的 tag,找到对应的类,返回实例 - 根据 自定义 Annotation 找到对应的类,返回实例 - 利用反射注入:Field 实例 - 利用反射注入:方法参数实例 ### default path - @Named:默认去类名(首字母小写) - @Scope:默认为多例 ### sad path 没有匹配到对象 - Class 没有被容器管理 - @Named 没有匹配的字符串 - 不同包下,类名一样 - 多个 @Named 重名 - 不支持第三方 jar 中类由容器统一管理 单例模式下创建对象需要考虑内存消耗、线程安全的问题
    展开
    
    