30 lines
729 B
Go
30 lines
729 B
Go
package di
|
|
|
|
// `annotation:"@Inject(name? string)"`
|
|
// field 에 적용
|
|
// 1. 타입으로 매칭 없으면 에러 2. 여러개의 타입이 검색되면 그 중에 name으로 매칭
|
|
|
|
// `annotation:"@Resource(name? string)"`
|
|
// field 에 적용
|
|
// 1. 이름으로 매칭 2. 타입으로 매칭
|
|
// 이름이 지정되지 않으면 field 이름으로 먼저 찾고 없으면 타입으로 매칭
|
|
|
|
// @Component
|
|
// Component 등록 시에 파라미터로 제공
|
|
// names []string
|
|
// initMethod string
|
|
// destroyMethod string
|
|
// scope enum singleton, transiant
|
|
|
|
type ScopeType int
|
|
|
|
const (
|
|
ScopeTypeDefault ScopeType = iota // == ScopeTypeSingleton
|
|
ScopeTypeSingleton
|
|
ScopeTypeTransiant
|
|
)
|
|
|
|
const (
|
|
AnnotationTag = "annotation"
|
|
)
|