无需构造的组件——组件实例如果注册的组件不可实例化,则抛出异常- 抽象类
- 接口
构造函数注入无依赖的组件应该通过默认构造函数生成组件实例有依赖的组件,通过 Inject 标注的构造函数生成组件实例如果所依赖的组件也存在依赖,那么需要对所依赖的组件也完成依赖注入如果组件有多于一个 Inject 标注的构造函数,则抛出异常如果组件没有 Inject 标注的构造函数,也没有默认构造函数(新增任务),则抛出异常如果组件需要的依赖不存在,则抛出异常如果组件间存在循环依赖,则抛出异常
字段注入通过 Inject 标注将字段声明为依赖组件如果字段为 final 则抛出异常依赖中应包含 Inject Field 声明的依赖如果组件需要的依赖不存在,则抛出异常如果组件间存在循环依赖,则抛出异常
方法注入通过 Inject 标注的方法,其参数为依赖组件通过 Inject 标注的无参数方法,会被调用按照子类中的规则,覆盖父类中的 Inject 方法如果方法定义类型参数,则抛出异常依赖中应包含 Inject Method 声明的依赖
- 对 Provider 类型的依赖
从容器中取得组件的 Provider(新增任务)注入构造函数中可以声明对于 Provider 的依赖注入字段中可以声明对于 Provider 的依赖注入方法中可声明对于 Provider 的依赖
自定义 Qualifier 的依赖注册组件时,可额外指定 Qualifier针对 instance 指定一个 Qualifier(新增任务)针对组件指定一个 Qualifier (新增任务)针对 instance 指定多个 Qualifier (新增任务)针对组件指定多个Qualifier (新增任务)
注册组件时,如果不是合法的Qualifier,则不接收组件注册(新增任务)寻找依赖时,需同时满足类型与自定义 Qualifier 标注在检查依赖时使用 Qualifier(新增任务)在检查循环依赖时使用 Qualifier (新增任务)构造函数注入可以使用 Qualifier 声明依赖(新增任务)如果不是合法的 Qualifier ,则组件非法
字段注入可以使用 Qualifier 声明依赖(新增任务)如果不是合法的 Qualifier ,则组件非法
函数注入可以使用 Qualifier 声明依赖(新增任务)如果不是合法的 Qualifier ,则组件非法
支持默认 Qualifier——Named(不需要)注册组件时,可从类对象上提取 Qualifier(不需要)
Singleton 生命周期注册组件时,可额外指定是否为 Singleton注册组件时,可从类对象上提取 Singleton 标注对于包含 Singleton 标注的组件,在容器范围内提供唯一实例容器组件默认不是 Single 生命周期
自定义 Scope 标注可向容器注册自定义 Scope 标注的回调
dicontainer's Introduction
dicontainer's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.