SpringCore

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 15, 2019 License: Apache-2.0 Imports: 5 Imported by: 4

Documentation

Index

Constants

View Source
const (
	Uninitialized = iota
	Initializing
	Initialized
)

SpringBean 的初始化状态值

Variables

This section is empty.

Functions

func GetBeanName

func GetBeanName(bean SpringBean) string

获取 SpringBean 的名称

func GetTypeName

func GetTypeName(t reflect.Type) string

获取Bean的唯一签名,规则 :pkgpath + struct name

Types

type DefaultSpringContext

type DefaultSpringContext struct {
	// contains filtered or unexported fields
}

SpringContext 的默认版本 目前支持三种bean的命名方式: 1、slice bean 匿名注册使用 "bean#id" 作为 bean 的名称 2、struct ptr bean,以 PkgPath + struct name ,以 . 分割 作为 bean 的名称 3、自定义命名

func NewDefaultSpringContext

func NewDefaultSpringContext() *DefaultSpringContext

工厂函数

func (*DefaultSpringContext) AutoWireBeans

func (ctx *DefaultSpringContext) AutoWireBeans() error

自动绑定所有的 SpringBean

func (*DefaultSpringContext) FindBeanByName

func (ctx *DefaultSpringContext) FindBeanByName(name string) SpringBean

根据 Bean 名称查找 SpringBean

func (*DefaultSpringContext) FindBeanByType

func (ctx *DefaultSpringContext) FindBeanByType(i interface{}) SpringBean

根据 Bean 类型查找 SpringBean

func (*DefaultSpringContext) FindBeanDefinitionByName

func (ctx *DefaultSpringContext) FindBeanDefinitionByName(name string) *SpringBeanDefinition

根据 Bean 名称查找 SpringBeanDefinition

func (*DefaultSpringContext) FindBeanDefinitionsByType

func (ctx *DefaultSpringContext) FindBeanDefinitionsByType(t reflect.Type) []*SpringBeanDefinition

根据 Bean 类型查找 SpringBeanDefinition 数组

func (*DefaultSpringContext) FindBeansByType

func (ctx *DefaultSpringContext) FindBeansByType(i interface{})

根据 Bean 类型查找 SpringBean 数组

func (*DefaultSpringContext) GetAllBeanNames

func (ctx *DefaultSpringContext) GetAllBeanNames() (names []string)

获取所有的bean name

func (*DefaultSpringContext) GetBeanByType

func (ctx *DefaultSpringContext) GetBeanByType(i interface{})

根据 Bean 类型查找 SpringBean, 并反射赋值

func (*DefaultSpringContext) GetDefaultProperties

func (ctx *DefaultSpringContext) GetDefaultProperties(name string, defaultValue interface{}) (interface{}, bool)

获取属性值,如果没有找到则使用指定的默认值

func (*DefaultSpringContext) GetPrefixProperties

func (ctx *DefaultSpringContext) GetPrefixProperties(prefix string) map[string]interface{}

获取指定前缀的属性值集合

func (*DefaultSpringContext) GetProperties

func (ctx *DefaultSpringContext) GetProperties(name string) interface{}

获取属性值

func (*DefaultSpringContext) RegisterBean

func (ctx *DefaultSpringContext) RegisterBean(bean SpringBean)

使用默认的名称注册 SpringBean 对象

func (*DefaultSpringContext) RegisterBeanDefinition

func (ctx *DefaultSpringContext) RegisterBeanDefinition(d *SpringBeanDefinition)

通过 SpringBeanDefinition 注册 SpringBean 对象

func (*DefaultSpringContext) RegisterNameBean

func (ctx *DefaultSpringContext) RegisterNameBean(name string, bean SpringBean)

使用指定的名称注册 SpringBean 对象

func (*DefaultSpringContext) RegisterSingletonBean

func (ctx *DefaultSpringContext) RegisterSingletonBean(bean SpringBean)

使用默认的名称注册 SpringBean 对象

func (*DefaultSpringContext) RegisterSingletonNameBean

func (ctx *DefaultSpringContext) RegisterSingletonNameBean(name string, bean SpringBean)

使用指定的名称注册 SpringBean 单例对象

func (*DefaultSpringContext) SetProperties

func (ctx *DefaultSpringContext) SetProperties(name string, value interface{})

设置属性值

func (*DefaultSpringContext) ToSpringBeanDefinition

func (ctx *DefaultSpringContext) ToSpringBeanDefinition(name string, bean SpringBean) *SpringBeanDefinition

SpringBean 转换为 SpringBeanDefinition 对象

func (*DefaultSpringContext) WireBean

func (ctx *DefaultSpringContext) WireBean(bean SpringBean) error

绑定外部指定的 SpringBean

type SpringBean

type SpringBean interface{}

定义 SpringBean 类型

type SpringBeanDefinition

type SpringBeanDefinition struct {
	Bean  SpringBean
	Name  string
	Init  int
	Type  reflect.Type
	Value reflect.Value
}

定义 SpringBeanDefinition 类型

type SpringBeanInitialization

type SpringBeanInitialization interface {
	InitBean(ctx SpringContext)
}

SpringBean 初始化接口

type SpringContext

type SpringContext interface {
	// 使用默认的名称注册 SpringBean 对象
	RegisterBean(bean SpringBean)

	// 使用指定的名称注册 SpringBean 对象
	RegisterNameBean(name string, bean SpringBean)

	// 使用默认的名称注册 Singleton SpringBean 对象
	RegisterSingletonBean(bean SpringBean)

	// 使用指定的名称注册 Singleton SpringBean 对象
	RegisterSingletonNameBean(name string, bean SpringBean)

	// 通过 SpringBeanDefinition 注册 SpringBean 对象
	RegisterBeanDefinition(d *SpringBeanDefinition)

	// 根据 Bean 类型查找 SpringBean
	FindBeanByType(i interface{}) SpringBean

	// 根据 Bean 类型查找
	GetBeanByType(i interface{})

	// 根据 Bean 类型查找 SpringBean 数组
	FindBeansByType(i interface{})

	// 根据 Bean 类型查找 SpringBeanDefinition 数组
	FindBeanDefinitionsByType(t reflect.Type) []*SpringBeanDefinition

	// 根据 Bean 名称查找 SpringBean
	FindBeanByName(name string) SpringBean

	// 根据 Bean 名称查找 SpringBeanDefinition
	FindBeanDefinitionByName(name string) *SpringBeanDefinition

	// 获取所有的bean name
	GetAllBeanNames() []string

	// 获取属性值
	GetProperties(name string) interface{}

	// 设置属性值
	SetProperties(name string, value interface{})

	// 获取指定前缀的属性值集合
	GetPrefixProperties(prefix string) map[string]interface{}

	// 获取属性值,如果没有找到则使用指定的默认值
	GetDefaultProperties(name string, defaultValue interface{}) (interface{}, bool)

	// 自动绑定所有的 SpringBean
	AutoWireBeans() error

	// 绑定外部指定的 SpringBean
	WireBean(bean SpringBean) error
}

定义 SpringContext 接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL