Documentation ¶
Index ¶
- Constants
- func CollectionMode(str string) bool
- func IsFuncBeanType(fnType reflect.Type) bool
- func IsRefType(k reflect.Kind) bool
- func IsValueType(k reflect.Kind) bool
- func NewBeanCondition(selector BeanSelector) *beanCondition
- func NewConditions(op ConditionOp, cond ...Condition) *conditions
- func NewDefaultProperties() *defaultProperties
- func NewDefaultSpringContext() *defaultSpringContext
- func NewExpressionCondition(expression string) *expressionCondition
- func NewFunctionCondition(fn ConditionFunc) *functionCondition
- func NewMissingBeanCondition(selector BeanSelector) *missingBeanCondition
- func NewMissingPropertyCondition(name string) *missingPropertyCondition
- func NewNotCondition(cond Condition) *notCondition
- func NewOptionArg(fn interface{}, tags ...string) *optionArg
- func NewPriorityProperties(curr Properties, next Properties) *priorityProperties
- func NewProfileCondition(profile string) *profileCondition
- func NewPropertyCondition(name string) *propertyCondition
- func NewPropertyValueCondition(name string, havingValue interface{}, options ...PropertyValueConditionOption) *propertyValueCondition
- func RegisterTypeConverter(fn interface{})
- func TypeName(typOrPtr TypeOrPtr) string
- type BeanDefinition
- func FnToBeanDefinition(name string, fn interface{}, tags ...string) *BeanDefinition
- func MethodToBeanDefinition(name string, selector BeanSelector, method string, tags ...string) *BeanDefinition
- func ToBeanDefinition(name string, i interface{}) *BeanDefinition
- func ValueToBeanDefinition(name string, v reflect.Value) *BeanDefinition
- func (d *BeanDefinition) And() *BeanDefinition
- func (d *BeanDefinition) Bean() interface{}
- func (d *BeanDefinition) BeanId() string
- func (d *BeanDefinition) ConditionNot(cond Condition) *BeanDefinition
- func (d *BeanDefinition) ConditionOn(cond Condition) *BeanDefinition
- func (d *BeanDefinition) ConditionOnBean(selector BeanSelector) *BeanDefinition
- func (d *BeanDefinition) ConditionOnExpression(expression string) *BeanDefinition
- func (d *BeanDefinition) ConditionOnMatches(fn ConditionFunc) *BeanDefinition
- func (d *BeanDefinition) ConditionOnMissingBean(selector BeanSelector) *BeanDefinition
- func (d *BeanDefinition) ConditionOnMissingProperty(name string) *BeanDefinition
- func (d *BeanDefinition) ConditionOnProfile(profile string) *BeanDefinition
- func (d *BeanDefinition) ConditionOnProperty(name string) *BeanDefinition
- func (d *BeanDefinition) ConditionOnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *BeanDefinition
- func (d *BeanDefinition) DependsOn(selectors ...BeanSelector) *BeanDefinition
- func (d *BeanDefinition) Description() string
- func (d *BeanDefinition) Destroy(fn interface{}, tags ...string) *BeanDefinition
- func (d *BeanDefinition) Export(exports ...TypeOrPtr) *BeanDefinition
- func (d *BeanDefinition) FileLine() string
- func (d *BeanDefinition) Init(fn interface{}, tags ...string) *BeanDefinition
- func (d *BeanDefinition) Match(typeName string, beanName string) bool
- func (d *BeanDefinition) Name() string
- func (d *BeanDefinition) Options(options ...*optionArg) *BeanDefinition
- func (d *BeanDefinition) Or() *BeanDefinition
- func (d *BeanDefinition) Primary(primary bool) *BeanDefinition
- func (d *BeanDefinition) Type() reflect.Type
- func (d *BeanDefinition) TypeName() string
- func (d *BeanDefinition) Value() reflect.Value
- type BeanSelector
- type CollectionTag
- type Condition
- type ConditionFunc
- type ConditionOp
- type Conditional
- func ConditionOnBean(selector BeanSelector) *Conditional
- func ConditionOnExpression(expression string) *Conditional
- func ConditionOnMatches(fn ConditionFunc) *Conditional
- func ConditionOnMissingBean(selector BeanSelector) *Conditional
- func ConditionOnMissingProperty(name string) *Conditional
- func ConditionOnProfile(profile string) *Conditional
- func ConditionOnProperty(name string) *Conditional
- func ConditionOnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *Conditional
- func NewConditional() *Conditional
- func OnBean(selector BeanSelector) *Conditionaldeprecated
- func OnExpression(expression string) *Conditionaldeprecated
- func OnMatches(fn ConditionFunc) *Conditionaldeprecated
- func OnMissingBean(selector BeanSelector) *Conditionaldeprecated
- func OnMissingProperty(name string) *Conditionaldeprecated
- func OnProfile(profile string) *Conditionaldeprecated
- func OnProperty(name string) *Conditionaldeprecated
- func OnPropertyValue(name string, havingValue interface{}) *Conditionaldeprecated
- func (c *Conditional) And() *Conditional
- func (c *Conditional) Empty() bool
- func (c *Conditional) Matches(ctx SpringContext) bool
- func (c *Conditional) OnBean(selector BeanSelector) *Conditional
- func (c *Conditional) OnCondition(cond Condition) *Conditional
- func (c *Conditional) OnConditionNot(cond Condition) *Conditional
- func (c *Conditional) OnExpression(expression string) *Conditional
- func (c *Conditional) OnMatches(fn ConditionFunc) *Conditional
- func (c *Conditional) OnMissingBean(selector BeanSelector) *Conditional
- func (c *Conditional) OnMissingProperty(name string) *Conditional
- func (c *Conditional) OnProfile(profile string) *Conditional
- func (c *Conditional) OnProperty(name string) *Conditional
- func (c *Conditional) OnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *Conditional
- func (c *Conditional) Or() *Conditional
- type Configer
- func (c *Configer) After(configers ...string) *Configer
- func (c *Configer) And() *Configer
- func (c *Configer) Before(configers ...string) *Configer
- func (c *Configer) ConditionNot(cond Condition) *Configer
- func (c *Configer) ConditionOn(cond Condition) *Configer
- func (c *Configer) ConditionOnBean(selector BeanSelector) *Configer
- func (c *Configer) ConditionOnExpression(expression string) *Configer
- func (c *Configer) ConditionOnMatches(fn ConditionFunc) *Configer
- func (c *Configer) ConditionOnMissingBean(selector BeanSelector) *Configer
- func (c *Configer) ConditionOnMissingProperty(name string) *Configer
- func (c *Configer) ConditionOnProfile(profile string) *Configer
- func (c *Configer) ConditionOnProperty(name string) *Configer
- func (c *Configer) ConditionOnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *Configer
- func (c *Configer) Options(options ...*optionArg) *Configer
- func (c *Configer) Or() *Configer
- type Properties
- type PropertyValueConditionOption
- type Runner
- type SingletonTag
- type SpringContext
- type TypeOrPtr
Constants ¶
const ( ConditionOr = ConditionOp(1) // 至少一个满足 ConditionAnd = ConditionOp(2) // 所有都要满足 ConditionNone = ConditionOp(3) // 没有一个满足 )
Variables ¶
This section is empty.
Functions ¶
func IsFuncBeanType ¶
IsFuncBeanType 返回以函数形式注册 Bean 的函数是否合法。一个合法 的注册函数需要以下条件:入参可以有任意多个,支持一般形式和 Option 形式,返回值只能有一个或者两个,第一个返回值必须是 Bean 源,它可以是 结构体等值类型也可以是指针等引用类型,为值类型时内部会自动转换为引用类 型(获取可引用的地址),如果有第二个返回值那么它必须是 error 类型。
func NewBeanCondition ¶
func NewBeanCondition(selector BeanSelector) *beanCondition
NewBeanCondition beanCondition 的构造函数
func NewConditions ¶
func NewConditions(op ConditionOp, cond ...Condition) *conditions
NewConditions conditions 的构造函数
func NewDefaultProperties ¶
func NewDefaultProperties() *defaultProperties
NewDefaultProperties defaultProperties 的构造函数
func NewDefaultSpringContext ¶
func NewDefaultSpringContext() *defaultSpringContext
NewDefaultSpringContext defaultSpringContext 的构造函数
func NewExpressionCondition ¶
func NewExpressionCondition(expression string) *expressionCondition
NewExpressionCondition expressionCondition 的构造函数
func NewFunctionCondition ¶
func NewFunctionCondition(fn ConditionFunc) *functionCondition
NewFunctionCondition functionCondition 的构造函数
func NewMissingBeanCondition ¶
func NewMissingBeanCondition(selector BeanSelector) *missingBeanCondition
NewMissingBeanCondition missingBeanCondition 的构造函数
func NewMissingPropertyCondition ¶
func NewMissingPropertyCondition(name string) *missingPropertyCondition
NewMissingPropertyCondition missingPropertyCondition 的构造函数
func NewNotCondition ¶
func NewNotCondition(cond Condition) *notCondition
NewNotCondition notCondition 的构造函数
func NewOptionArg ¶
func NewOptionArg(fn interface{}, tags ...string) *optionArg
NewOptionArg optionArg 的构造函数,tags 是 Option 函数的一般参数绑定
func NewPriorityProperties ¶ added in v1.0.1
func NewPriorityProperties(curr Properties, next Properties) *priorityProperties
NewPriorityProperties priorityProperties 的构造函数
func NewProfileCondition ¶
func NewProfileCondition(profile string) *profileCondition
NewProfileCondition profileCondition 的构造函数
func NewPropertyCondition ¶
func NewPropertyCondition(name string) *propertyCondition
NewPropertyCondition propertyCondition 的构造函数
func NewPropertyValueCondition ¶
func NewPropertyValueCondition(name string, havingValue interface{}, options ...PropertyValueConditionOption) *propertyValueCondition
NewPropertyValueCondition propertyValueCondition 的构造函数
func RegisterTypeConverter ¶
func RegisterTypeConverter(fn interface{})
RegisterTypeConverter 注册类型转换器,函数原型 func(string)type
Types ¶
type BeanDefinition ¶
type BeanDefinition struct {
// contains filtered or unexported fields
}
BeanDefinition 用于存储 Bean 的各种元数据
func FnToBeanDefinition ¶
func FnToBeanDefinition(name string, fn interface{}, tags ...string) *BeanDefinition
FnToBeanDefinition 将构造函数转换为 BeanDefinition 对象
func MethodToBeanDefinition ¶
func MethodToBeanDefinition(name string, selector BeanSelector, method string, tags ...string) *BeanDefinition
MethodToBeanDefinition 将成员方法转换为 BeanDefinition 对象
func ToBeanDefinition ¶
func ToBeanDefinition(name string, i interface{}) *BeanDefinition
ToBeanDefinition 将 Bean 转换为 BeanDefinition 对象
func ValueToBeanDefinition ¶
func ValueToBeanDefinition(name string, v reflect.Value) *BeanDefinition
ValueToBeanDefinition 将 Value 转换为 BeanDefinition 对象
func (*BeanDefinition) ConditionNot ¶
func (d *BeanDefinition) ConditionNot(cond Condition) *BeanDefinition
ConditionNot 为 Bean 设置一个取反的 Condition
func (*BeanDefinition) ConditionOn ¶
func (d *BeanDefinition) ConditionOn(cond Condition) *BeanDefinition
ConditionOn 为 Bean 设置一个 Condition
func (*BeanDefinition) ConditionOnBean ¶
func (d *BeanDefinition) ConditionOnBean(selector BeanSelector) *BeanDefinition
ConditionOnBean 为 Bean 设置一个 BeanCondition
func (*BeanDefinition) ConditionOnExpression ¶
func (d *BeanDefinition) ConditionOnExpression(expression string) *BeanDefinition
ConditionOnExpression 为 Bean 设置一个 ExpressionCondition
func (*BeanDefinition) ConditionOnMatches ¶
func (d *BeanDefinition) ConditionOnMatches(fn ConditionFunc) *BeanDefinition
ConditionOnMatches 为 Bean 设置一个 FunctionCondition
func (*BeanDefinition) ConditionOnMissingBean ¶
func (d *BeanDefinition) ConditionOnMissingBean(selector BeanSelector) *BeanDefinition
ConditionOnMissingBean 为 Bean 设置一个 MissingBeanCondition
func (*BeanDefinition) ConditionOnMissingProperty ¶
func (d *BeanDefinition) ConditionOnMissingProperty(name string) *BeanDefinition
ConditionOnMissingProperty 为 Bean 设置一个 MissingPropertyCondition
func (*BeanDefinition) ConditionOnProfile ¶
func (d *BeanDefinition) ConditionOnProfile(profile string) *BeanDefinition
ConditionOnProfile 为 Bean 设置一个 ProfileCondition
func (*BeanDefinition) ConditionOnProperty ¶
func (d *BeanDefinition) ConditionOnProperty(name string) *BeanDefinition
ConditionOnProperty 为 Bean 设置一个 PropertyCondition
func (*BeanDefinition) ConditionOnPropertyValue ¶
func (d *BeanDefinition) ConditionOnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *BeanDefinition
ConditionOnPropertyValue 为 Bean 设置一个 PropertyValueCondition
func (*BeanDefinition) DependsOn ¶
func (d *BeanDefinition) DependsOn(selectors ...BeanSelector) *BeanDefinition
DependsOn 设置 Bean 的间接依赖项
func (*BeanDefinition) Description ¶
func (d *BeanDefinition) Description() string
Description 返回 Bean 的详细描述
func (*BeanDefinition) Destroy ¶
func (d *BeanDefinition) Destroy(fn interface{}, tags ...string) *BeanDefinition
Destroy 设置 Bean 的销毁函数,tags 是销毁函数的一般参数绑定
func (*BeanDefinition) Export ¶ added in v1.0.3
func (d *BeanDefinition) Export(exports ...TypeOrPtr) *BeanDefinition
Export 显式指定 Bean 的导出接口
func (*BeanDefinition) FileLine ¶ added in v1.0.4
func (d *BeanDefinition) FileLine() string
FileLine 返回 Bean 的注册点
func (*BeanDefinition) Init ¶
func (d *BeanDefinition) Init(fn interface{}, tags ...string) *BeanDefinition
Init 设置 Bean 的初始化函数,tags 是初始化函数的一般参数绑定
func (*BeanDefinition) Match ¶
func (d *BeanDefinition) Match(typeName string, beanName string) bool
Match 测试 Bean 的类型全限定名和 Bean 的名称是否都匹配
func (*BeanDefinition) Options ¶
func (d *BeanDefinition) Options(options ...*optionArg) *BeanDefinition
Options 设置 Option 模式函数的 Option 参数绑定
func (*BeanDefinition) Primary ¶
func (d *BeanDefinition) Primary(primary bool) *BeanDefinition
Primary 设置 Bean 为主版本
func (*BeanDefinition) TypeName ¶
func (d *BeanDefinition) TypeName() string
TypeName 返回 Bean 的原始类型的全限定名
type BeanSelector ¶ added in v1.0.4
type BeanSelector interface{}
BeanSelector Bean 选择器,可以是 BeanId 字符串,可以是 reflect.Type 对象或者形如 (*error)(nil) 的对象指针,还可以是 *BeanDefinition 对象。
type CollectionTag ¶ added in v1.0.4
type CollectionTag struct { Items []SingletonTag Nullable bool }
CollectionTag 收集模式注入 Tag 对应的分解形式
func ParseCollectionTag ¶ added in v1.0.4
func ParseCollectionTag(str string) (tag CollectionTag)
ParseCollectionTag 解析收集模式注入 Tag 字符串
func (CollectionTag) String ¶ added in v1.0.4
func (tag CollectionTag) String() (str string)
type Condition ¶
type Condition interface { // Matches 成功返回 true,失败返回 false Matches(ctx SpringContext) bool }
Condition 定义一个判断条件
type ConditionFunc ¶
type ConditionFunc func(ctx SpringContext) bool
ConditionFunc 定义 Condition 接口 Matches 方法的类型
type Conditional ¶
type Conditional struct {
// contains filtered or unexported fields
}
Conditional Condition 计算式
func ConditionOnBean ¶ added in v1.0.4
func ConditionOnBean(selector BeanSelector) *Conditional
ConditionOnBean 返回设置了 beanCondition 的 Conditional 对象
func ConditionOnExpression ¶ added in v1.0.4
func ConditionOnExpression(expression string) *Conditional
ConditionOnExpression 返回设置了 expressionCondition 的 Conditional 对象
func ConditionOnMatches ¶ added in v1.0.4
func ConditionOnMatches(fn ConditionFunc) *Conditional
ConditionOnMatches 返回设置了 functionCondition 的 Conditional 对象
func ConditionOnMissingBean ¶ added in v1.0.4
func ConditionOnMissingBean(selector BeanSelector) *Conditional
ConditionOnMissingBean 返回设置了 missingBeanCondition 的 Conditional 对象
func ConditionOnMissingProperty ¶ added in v1.0.4
func ConditionOnMissingProperty(name string) *Conditional
ConditionOnMissingProperty 返回设置了 missingPropertyCondition 的 Conditional 对象
func ConditionOnProfile ¶ added in v1.0.4
func ConditionOnProfile(profile string) *Conditional
ConditionOnProfile 返回设置了 profileCondition 的 Conditional 对象
func ConditionOnProperty ¶ added in v1.0.4
func ConditionOnProperty(name string) *Conditional
ConditionOnProperty 返回设置了 propertyCondition 的 Conditional 对象
func ConditionOnPropertyValue ¶ added in v1.0.4
func ConditionOnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *Conditional
ConditionOnPropertyValue 返回设置了 propertyValueCondition 的 Conditional 对象
func OnBean
deprecated
added in
v1.0.3
func OnBean(selector BeanSelector) *Conditional
Deprecated: Use "ConditionOnBean" instead.
func OnExpression
deprecated
added in
v1.0.3
func OnExpression(expression string) *Conditional
Deprecated: Use "ConditionOnExpression" instead.
func OnMatches
deprecated
added in
v1.0.3
func OnMatches(fn ConditionFunc) *Conditional
Deprecated: Use "ConditionOnMatches" instead.
func OnMissingBean
deprecated
added in
v1.0.3
func OnMissingBean(selector BeanSelector) *Conditional
Deprecated: Use "ConditionOnMissingBean" instead.
func OnMissingProperty
deprecated
added in
v1.0.3
func OnMissingProperty(name string) *Conditional
Deprecated: Use "ConditionOnMissingProperty" instead.
func OnProfile
deprecated
added in
v1.0.3
func OnProfile(profile string) *Conditional
Deprecated: Use "ConditionOnProfile" instead.
func OnProperty
deprecated
added in
v1.0.3
func OnProperty(name string) *Conditional
Deprecated: Use "ConditionOnProperty" instead.
func OnPropertyValue
deprecated
added in
v1.0.3
func OnPropertyValue(name string, havingValue interface{}) *Conditional
Deprecated: Use "ConditionOnPropertyValue" instead.
func (*Conditional) Matches ¶
func (c *Conditional) Matches(ctx SpringContext) bool
Matches 成功返回 true,失败返回 false
func (*Conditional) OnBean ¶
func (c *Conditional) OnBean(selector BeanSelector) *Conditional
OnBean 设置一个 beanCondition
func (*Conditional) OnCondition ¶
func (c *Conditional) OnCondition(cond Condition) *Conditional
OnCondition 设置一个 Condition
func (*Conditional) OnConditionNot ¶
func (c *Conditional) OnConditionNot(cond Condition) *Conditional
OnConditionNot 设置一个取反的 Condition
func (*Conditional) OnExpression ¶
func (c *Conditional) OnExpression(expression string) *Conditional
OnExpression 设置一个 expressionCondition
func (*Conditional) OnMatches ¶
func (c *Conditional) OnMatches(fn ConditionFunc) *Conditional
OnMatches 设置一个 functionCondition
func (*Conditional) OnMissingBean ¶
func (c *Conditional) OnMissingBean(selector BeanSelector) *Conditional
OnMissingBean 设置一个 missingBeanCondition
func (*Conditional) OnMissingProperty ¶
func (c *Conditional) OnMissingProperty(name string) *Conditional
OnMissingProperty 设置一个 missingPropertyCondition
func (*Conditional) OnProfile ¶
func (c *Conditional) OnProfile(profile string) *Conditional
OnProfile 设置一个 profileCondition
func (*Conditional) OnProperty ¶
func (c *Conditional) OnProperty(name string) *Conditional
OnProperty 设置一个 propertyCondition
func (*Conditional) OnPropertyValue ¶
func (c *Conditional) OnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *Conditional
OnPropertyValue 设置一个 propertyValueCondition
type Configer ¶ added in v1.0.3
type Configer struct {
// contains filtered or unexported fields
}
Configer 配置函数,不立即执行
func (*Configer) ConditionNot ¶ added in v1.0.3
ConditionNot 为 Configer 设置一个取反的 Condition
func (*Configer) ConditionOn ¶ added in v1.0.3
ConditionOn 为 Configer 设置一个 Condition
func (*Configer) ConditionOnBean ¶ added in v1.0.3
func (c *Configer) ConditionOnBean(selector BeanSelector) *Configer
ConditionOnBean 为 Configer 设置一个 BeanCondition
func (*Configer) ConditionOnExpression ¶ added in v1.0.3
ConditionOnExpression 为 Configer 设置一个 ExpressionCondition
func (*Configer) ConditionOnMatches ¶ added in v1.0.3
func (c *Configer) ConditionOnMatches(fn ConditionFunc) *Configer
ConditionOnMatches 为 Configer 设置一个 FunctionCondition
func (*Configer) ConditionOnMissingBean ¶ added in v1.0.3
func (c *Configer) ConditionOnMissingBean(selector BeanSelector) *Configer
ConditionOnMissingBean 为 Configer 设置一个 MissingBeanCondition
func (*Configer) ConditionOnMissingProperty ¶ added in v1.0.3
ConditionOnMissingProperty 为 Configer 设置一个 MissingPropertyCondition
func (*Configer) ConditionOnProfile ¶ added in v1.0.3
ConditionOnProfile 为 Configer 设置一个 ProfileCondition
func (*Configer) ConditionOnProperty ¶ added in v1.0.3
ConditionOnProperty 为 Configer 设置一个 PropertyCondition
func (*Configer) ConditionOnPropertyValue ¶ added in v1.0.3
func (c *Configer) ConditionOnPropertyValue(name string, havingValue interface{}, options ...PropertyValueConditionOption) *Configer
ConditionOnPropertyValue 为 Configer 设置一个 PropertyValueCondition
type Properties ¶
type Properties interface { // LoadProperties 加载属性配置文件, // 支持 properties、yaml 和 toml 三种文件格式。 LoadProperties(filename string) // ReadProperties 读取属性配置文件, // 支持 properties、yaml 和 toml 三种文件格式。 ReadProperties(reader io.Reader, configType string) // GetProperty 返回 keys 中第一个存在的属性值,属性名称统一转成小写。 GetProperty(keys ...string) interface{} // GetBoolProperty 返回 keys 中第一个存在的布尔型属性值,属性名称统一转成小写。 GetBoolProperty(keys ...string) bool // GetIntProperty 返回 keys 中第一个存在的有符号整型属性值,属性名称统一转成小写。 GetIntProperty(keys ...string) int64 // GetUintProperty 返回 keys 中第一个存在的无符号整型属性值,属性名称统一转成小写。 GetUintProperty(keys ...string) uint64 // GetFloatProperty 返回 keys 中第一个存在的浮点型属性值,属性名称统一转成小写。 GetFloatProperty(keys ...string) float64 // GetStringProperty 返回 keys 中第一个存在的字符串型属性值,属性名称统一转成小写。 GetStringProperty(keys ...string) string // GetDurationProperty 返回 keys 中第一个存在的 Duration 类型属性值,属性名称统一转成小写。 GetDurationProperty(keys ...string) time.Duration // GetTimeProperty 返回 keys 中第一个存在的 Time 类型的属性值,属性名称统一转成小写。 GetTimeProperty(keys ...string) time.Time // GetDefaultProperty 返回属性值,如果没有找到则使用指定的默认值,属性名称统一转成小写。 GetDefaultProperty(key string, def interface{}) (interface{}, bool) // SetProperty 设置属性值,属性名称统一转成小写。 SetProperty(key string, value interface{}) // GetPrefixProperties 返回指定前缀的属性值集合,属性名称统一转成小写。 GetPrefixProperties(prefix string) map[string]interface{} // GetProperties 返回所有的属性值,属性名称统一转成小写。 GetProperties() map[string]interface{} // BindProperty 根据类型获取属性值,属性名称统一转成小写。 BindProperty(key string, i interface{}) // BindPropertyIf 根据类型获取属性值,属性名称统一转成小写。 BindPropertyIf(key string, i interface{}, allAccess bool) }
Properties 定义属性值接口
type PropertyValueConditionOption ¶ added in v1.0.4
type PropertyValueConditionOption func(*propertyValueCondition)
func MatchIfMissing ¶ added in v1.0.4
func MatchIfMissing(matchIfMissing bool) PropertyValueConditionOption
MatchIfMissing 当属性值不存在时是否匹配判断条件
type Runner ¶ added in v1.0.3
type Runner struct {
// contains filtered or unexported fields
}
Runner 立即执行器
type SingletonTag ¶ added in v1.0.4
SingletonTag 单例模式注入 Tag 对应的分解形式
func ParseSingletonTag ¶ added in v1.0.4
func ParseSingletonTag(str string) (tag SingletonTag)
ParseSingletonTag 解析单例模式注入 Tag 字符串
func ToSingletonTag ¶ added in v1.0.4
func ToSingletonTag(selector BeanSelector) SingletonTag
ToSingletonTag 将 Bean 选择器转换为 SingletonTag 形式。注意该函数仅用 于精确匹配的场景下,也就是说通过类型选择的时候类型必须是具体的,而不能是接口。
func (SingletonTag) String ¶ added in v1.0.4
func (tag SingletonTag) String() (str string)
type SpringContext ¶
type SpringContext interface { // 属性值列表接口 Properties // Context 返回上下文接口 Context() context.Context // GetProfile 返回运行环境 GetProfile() string // SetProfile 设置运行环境 SetProfile(profile string) // AllAccess 返回是否允许访问私有字段 AllAccess() bool // SetAllAccess 设置是否允许访问私有字段 SetAllAccess(allAccess bool) // RegisterBean 注册单例 Bean,不指定名称,重复注册会 panic。 RegisterBean(bean interface{}) *BeanDefinition // RegisterNameBean 注册单例 Bean,需指定名称,重复注册会 panic。 RegisterNameBean(name string, bean interface{}) *BeanDefinition // RegisterBeanFn 注册单例构造函数 Bean,不指定名称,重复注册会 panic。 RegisterBeanFn(fn interface{}, tags ...string) *BeanDefinition // RegisterNameBeanFn 注册单例构造函数 Bean,需指定名称,重复注册会 panic。 RegisterNameBeanFn(name string, fn interface{}, tags ...string) *BeanDefinition // RegisterMethodBean 注册成员方法单例 Bean,不指定名称,重复注册会 panic。 // 必须给定方法名而不能通过遍历方法列表比较方法类型的方式获得函数名,因为不同方法的类型可能相同。 // 而且 interface 的方法类型不带 receiver 而成员方法的类型带有 receiver,两者类型也不好匹配。 RegisterMethodBean(selector BeanSelector, method string, tags ...string) *BeanDefinition // RegisterNameMethodBean 注册成员方法单例 Bean,需指定名称,重复注册会 panic。 // 必须给定方法名而不能通过遍历方法列表比较方法类型的方式获得函数名,因为不同方法的类型可能相同。 // 而且 interface 的方法类型不带 receiver 而成员方法的类型带有 receiver,两者类型也不好匹配。 RegisterNameMethodBean(name string, selector BeanSelector, method string, tags ...string) *BeanDefinition // @Incubate 注册成员方法单例 Bean,不指定名称,重复注册会 panic。 // method 形如 ServerInterface.Consumer (接口) 或 (*Server).Consumer (类型)。 RegisterMethodBeanFn(method interface{}, tags ...string) *BeanDefinition // @Incubate 注册成员方法单例 Bean,需指定名称,重复注册会 panic。 // method 形如 ServerInterface.Consumer (接口) 或 (*Server).Consumer (类型)。 RegisterNameMethodBeanFn(name string, method interface{}, tags ...string) *BeanDefinition // AutoWireBeans 对所有 Bean 进行依赖注入和属性绑定 AutoWireBeans() // WireBean 对外部的 Bean 进行依赖注入和属性绑定 WireBean(i interface{}) // GetBean 获取单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。 // 它和 FindBean 的区别是它在调用后能够保证返回的 Bean 已经完成了注入和绑定过程。 GetBean(i interface{}, selector ...BeanSelector) bool // FindBean 查询单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。 // 它和 GetBean 的区别是它在调用后不能保证返回的 Bean 已经完成了注入和绑定过程。 FindBean(selector BeanSelector) (*BeanDefinition, bool) // CollectBeans 收集数组或指针定义的所有符合条件的 Bean,收集到返回 true,否则返 // 回 false。该函数有两种模式:自动模式和指定模式。自动模式是指 selectors 参数为空, // 这时候不仅会收集符合条件的单例 Bean,还会收集符合条件的数组 Bean (是指数组的元素 // 符合条件,然后把数组元素拆开一个个放到收集结果里面)。指定模式是指 selectors 参数 // 不为空,这时候只会收集单例 Bean,而且要求这些单例 Bean 不仅需要满足收集条件,而且 // 必须满足 selector 条件。另外,自动模式下不对收集结果进行排序,指定模式下根据 // selectors 列表的顺序对收集结果进行排序。 CollectBeans(i interface{}, selectors ...BeanSelector) bool // GetBeanDefinitions 获取所有 Bean 的定义,不能保证解析和注入,请谨慎使用该函数! GetBeanDefinitions() []*BeanDefinition // Close 关闭容器上下文,用于通知 Bean 销毁等。 // 该函数可以确保 Bean 的销毁顺序和注入顺序相反。 Close() // Run 立即执行一个一次性的任务 Run(fn interface{}, tags ...string) *Runner // Config 注册一个配置函数 Config(fn interface{}, tags ...string) *Configer // ConfigWithName 注册一个配置函数,名称的作用是对 Config 进行排重和排顺序。 ConfigWithName(name string, fn interface{}, tags ...string) *Configer }
SpringContext 定义了 IoC 容器接口。
它的工作过程可以分为三个大的阶段:注册 Bean 列表、加载属性配置 文件、自动绑定。其中自动绑定又分为两个小阶段:解析(决议)和绑定。
一条需要谨记的注册规则是: AutoWireBeans 调用后就不能再注册新 的 Bean 了,这样做是因为实现起来更简单而且性能更高。