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 )