This commit is contained in:
병준 박 2019-11-13 23:01:03 +09:00
parent c3e8cd5718
commit 1ab0bb37bf
6 changed files with 28 additions and 51 deletions

View File

@ -1,21 +0,0 @@
package annotations
// @Inject(name? string)
import (
"reflect"
"git.loafle.net/loafer/annotation-go"
)
var InjectAnnotationType = reflect.TypeOf((*InjectAnnotation)(nil))
func init() {
annotation.Register(InjectAnnotationType)
}
type InjectAnnotation struct {
annotation.TypeAnnotation `@annotation:"@Inject"`
Name string `json:"name"`
}

View File

@ -1,18 +0,0 @@
package annotations
import (
"reflect"
"git.loafle.net/loafer/annotation-go"
)
var ResourceAnnotationType = reflect.TypeOf((*ResourceAnnotation)(nil))
func init() {
annotation.Register(ResourceAnnotationType)
}
type ResourceAnnotation struct {
annotation.TypeAnnotation `@annotation:"@Resource"`
Name string `json:"name"`
}

2
go.mod
View File

@ -3,6 +3,6 @@ module git.loafle.net/loafer/di-go
go 1.13 go 1.13
require ( require (
git.loafle.net/loafer/annotation-go v0.0.0-20191112145817-e44b732fea76 git.loafle.net/loafer/annotation-go v0.0.0-20191113135342-a3974dc21898
git.loafle.net/loafer/util-go v0.0.0-20191113132317-6eeae49d258d git.loafle.net/loafer/util-go v0.0.0-20191113132317-6eeae49d258d
) )

4
go.sum
View File

@ -1,5 +1,5 @@
git.loafle.net/loafer/annotation-go v0.0.0-20191112145817-e44b732fea76 h1:fUggcxR3GQLUeDVt2vuLJ7NW20sdr+Cnk/Q0uOioBLI= git.loafle.net/loafer/annotation-go v0.0.0-20191113135342-a3974dc21898 h1:3moCEHhGfzHTQVBde+IkvB42oDGUdpCDkBWjN5ZnoL8=
git.loafle.net/loafer/annotation-go v0.0.0-20191112145817-e44b732fea76/go.mod h1:1yow6wwbB3nWq6Asgt3BAPfXJTjZeqgMYF+VVPlj9Xk= git.loafle.net/loafer/annotation-go v0.0.0-20191113135342-a3974dc21898/go.mod h1:1yow6wwbB3nWq6Asgt3BAPfXJTjZeqgMYF+VVPlj9Xk=
git.loafle.net/loafer/util-go v0.0.0-20191112142134-9a567d18b779/go.mod h1:HGVw9FNJIc/UFDIzxmoIj5K2+D9Eadal5jjHOq0NFOU= git.loafle.net/loafer/util-go v0.0.0-20191112142134-9a567d18b779/go.mod h1:HGVw9FNJIc/UFDIzxmoIj5K2+D9Eadal5jjHOq0NFOU=
git.loafle.net/loafer/util-go v0.0.0-20191113132317-6eeae49d258d h1:ESDbDHHzH2Ysq+thQrO/OQtyDkVhzNzshjn0SJIqa0g= git.loafle.net/loafer/util-go v0.0.0-20191113132317-6eeae49d258d h1:ESDbDHHzH2Ysq+thQrO/OQtyDkVhzNzshjn0SJIqa0g=
git.loafle.net/loafer/util-go v0.0.0-20191113132317-6eeae49d258d/go.mod h1:HGVw9FNJIc/UFDIzxmoIj5K2+D9Eadal5jjHOq0NFOU= git.loafle.net/loafer/util-go v0.0.0-20191113132317-6eeae49d258d/go.mod h1:HGVw9FNJIc/UFDIzxmoIj5K2+D9Eadal5jjHOq0NFOU=

View File

@ -8,7 +8,6 @@ import (
"strings" "strings"
"git.loafle.net/loafer/annotation-go" "git.loafle.net/loafer/annotation-go"
"git.loafle.net/loafer/di-go/annotations"
luReflect "git.loafle.net/loafer/util-go/reflect" luReflect "git.loafle.net/loafer/util-go/reflect"
) )
@ -82,8 +81,8 @@ func (r *Registry) RegisterType(t reflect.Type) {
name := td.TypeName name := td.TypeName
if a := td.GetTypeAnnotationByType(annotations.ComponentAnnotationType, true); nil != a { if a := td.GetTypeAnnotationByType(ComponentAnnotationType, true); nil != a {
ca := a.(*annotations.ComponentAnnotation) ca := a.(*ComponentAnnotation)
if "" != strings.Trim(ca.Name, " ") { if "" != strings.Trim(ca.Name, " ") {
name = ca.Name name = ca.Name
} }
@ -172,14 +171,14 @@ func (r *Registry) GetInstance(t reflect.Type) (instance interface{}, err error)
return return
} }
if annotation = fd.GetAnnotationByType(annotations.InjectAnnotationType, false); nil != annotation { if annotation = fd.GetAnnotationByType(InjectAnnotationType, false); nil != annotation {
if fV, err = r.GetInstance(fd.Type); nil != err { if fV, err = r.GetInstance(fd.Type); nil != err {
return return
} }
} }
if annotation = fd.GetAnnotationByType(annotations.ResourceAnnotationType, false); nil != annotation { if annotation = fd.GetAnnotationByType(ResourceAnnotationType, false); nil != annotation {
n := annotation.(*annotations.ResourceAnnotation).Name n := annotation.(*ResourceAnnotation).Name
if "" == n { if "" == n {
n = fd.FieldName n = fd.FieldName
} }

View File

@ -1,4 +1,4 @@
package annotations package di
// @Inject(name? string) // @Inject(name? string)
@ -8,15 +8,32 @@ import (
"git.loafle.net/loafer/annotation-go" "git.loafle.net/loafer/annotation-go"
) )
var ComponentAnnotationType = reflect.TypeOf((*ComponentAnnotation)(nil))
func init() { func init() {
annotation.Register(ComponentAnnotationType) annotation.Register(ComponentAnnotationType)
annotation.Register(InjectAnnotationType)
annotation.Register(ResourceAnnotationType)
} }
var ComponentAnnotationType = reflect.TypeOf((*ComponentAnnotation)(nil))
type ComponentAnnotation struct { type ComponentAnnotation struct {
annotation.TypeAnnotation `@annotation:"@Component"` annotation.TypeAnnotation `@annotation:"@Component"`
Name string `json:"name"` Name string `json:"name"`
InitMethod string `json:"initMethod"` // func (receiver interface{}, cr ComponentRegistry) error InitMethod string `json:"initMethod"` // func (receiver interface{}, cr ComponentRegistry) error
DestroyMethod string `json:"destroyMethod"` // func (receiver interface{}, cr ComponentRegistry) error DestroyMethod string `json:"destroyMethod"` // func (receiver interface{}, cr ComponentRegistry) error
} }
var InjectAnnotationType = reflect.TypeOf((*InjectAnnotation)(nil))
type InjectAnnotation struct {
annotation.TypeAnnotation `@annotation:"@Inject"`
Name string `json:"name"`
}
var ResourceAnnotationType = reflect.TypeOf((*ResourceAnnotation)(nil))
type ResourceAnnotation struct {
annotation.TypeAnnotation `@annotation:"@Resource"`
Name string `json:"name"`
}