ing
This commit is contained in:
		
							parent
							
								
									c3e8cd5718
								
							
						
					
					
						commit
						1ab0bb37bf
					
				| @ -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"` |  | ||||||
| } |  | ||||||
| @ -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
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @ -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
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							| @ -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= | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								registry.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								registry.go
									
									
									
									
									
								
							| @ -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 | ||||||
| 			} | 			} | ||||||
|  | |||||||
| @ -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"` | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user