Documentation
¶
Overview ¶
开箱即用的 Go-Spring 程序启动框架。
Index ¶
- Constants
- Variables
- func AllAccess() bool
- func BindProperty(key string, i interface{})
- func BindPropertyIf(key string, i interface{}, allAccess bool)
- func CollectBeans(i interface{}) bool
- func Exit()
- func FindBean(selector interface{}) (*SpringCore.BeanDefinition, bool)
- func FindBeanByName(beanId string) (*SpringCore.BeanDefinition, bool)
- func GetBean(i interface{}) bool
- func GetBeanByName(beanId string, i interface{}) bool
- func GetBeanDefinitions() []*SpringCore.BeanDefinition
- func GetBoolProperty(keys ...string) bool
- func GetDefaultProperty(key string, def interface{}) (interface{}, bool)
- func GetDurationProperty(keys ...string) time.Duration
- func GetFloatProperty(keys ...string) float64
- func GetIntProperty(keys ...string) int64
- func GetPrefixProperties(prefix string) map[string]interface{}
- func GetProfile() string
- func GetProperties() map[string]interface{}
- func GetProperty(keys ...string) interface{}
- func GetStringProperty(keys ...string) string
- func GetTimeProperty(keys ...string) time.Time
- func GetUintProperty(keys ...string) uint64
- func NewConfigMapPropertySource(filename string) *configMapPropertySource
- func NewDefaultPropertySource(fileLocation string) *defaultPropertySource
- func RegisterBean(bean interface{}) *SpringCore.BeanDefinition
- func RegisterBeanFn(fn interface{}, tags ...string) *SpringCore.BeanDefinition
- func RegisterMethodBean(selector interface{}, method string, tags ...string) *SpringCore.BeanDefinition
- func RegisterNameBean(name string, bean interface{}) *SpringCore.BeanDefinition
- func RegisterNameBeanFn(name string, fn interface{}, tags ...string) *SpringCore.BeanDefinition
- func RegisterNameMethodBean(name string, selector interface{}, method string, tags ...string) *SpringCore.BeanDefinition
- func RunApplication(configLocation ...string)
- func SetAllAccess(allAccess bool)
- func SetEventNotify(notify func(event SpringCore.ContextEvent))
- func SetProfile(profile string)
- func SetProperty(key string, value interface{})
- func WireBean(bean interface{})
- type ApplicationContext
- type ApplicationEvent
- type CommandLineRunner
- type GoFunc
- type Mapping
- func DeleteMapping(path string, fn SpringWeb.Handler) *Mapping
- func GetMapping(path string, fn SpringWeb.Handler) *Mapping
- func NewMapping(mapper *SpringWeb.Mapper) *Mapping
- func PatchMapping(path string, fn SpringWeb.Handler) *Mapping
- func PostMapping(path string, fn SpringWeb.Handler) *Mapping
- func PutMapping(path string, fn SpringWeb.Handler) *Mapping
- func RequestMapping(method uint32, path string, fn SpringWeb.Handler) *Mapping
- func (m *Mapping) And() *Mapping
- func (m *Mapping) ConditionNot(cond SpringCore.Condition) *Mapping
- func (m *Mapping) ConditionOn(cond SpringCore.Condition) *Mapping
- func (m *Mapping) ConditionOnBean(selector interface{}) *Mapping
- func (m *Mapping) ConditionOnExpression(expression string) *Mapping
- func (m *Mapping) ConditionOnMatches(fn SpringCore.ConditionFunc) *Mapping
- func (m *Mapping) ConditionOnMissingBean(selector interface{}) *Mapping
- func (m *Mapping) ConditionOnMissingProperty(name string) *Mapping
- func (m *Mapping) ConditionOnProfile(profile string) *Mapping
- func (m *Mapping) ConditionOnProperty(name string) *Mapping
- func (m *Mapping) ConditionOnPropertyValue(name string, havingValue interface{}) *Mapping
- func (m *Mapping) Doc() string
- func (m *Mapping) FilterNames() []string
- func (m *Mapping) Filters() []SpringWeb.Filter
- func (m *Mapping) Handler() SpringWeb.Handler
- func (m *Mapping) Key() string
- func (m *Mapping) Matches(ctx SpringCore.SpringContext) bool
- func (m *Mapping) Method() uint32
- func (m *Mapping) Or() *Mapping
- func (m *Mapping) Path() string
- func (m *Mapping) Port() int
- func (m *Mapping) SetDoc(doc string) *Mapping
- func (m *Mapping) SetFilterNames(filterNames ...string) *Mapping
- func (m *Mapping) SetFilters(filters ...SpringWeb.Filter) *Mapping
- func (m *Mapping) SetPort(port int) *Mapping
- type Router
- func (r *Router) And() *Router
- func (r *Router) ConditionNot(cond SpringCore.Condition) *Router
- func (r *Router) ConditionOn(cond SpringCore.Condition) *Router
- func (r *Router) ConditionOnBean(selector interface{}) *Router
- func (r *Router) ConditionOnExpression(expression string) *Router
- func (r *Router) ConditionOnMatches(fn SpringCore.ConditionFunc) *Router
- func (r *Router) ConditionOnMissingBean(selector interface{}) *Router
- func (r *Router) ConditionOnMissingProperty(name string) *Router
- func (r *Router) ConditionOnProfile(profile string) *Router
- func (r *Router) ConditionOnProperty(name string) *Router
- func (r *Router) ConditionOnPropertyValue(name string, havingValue interface{}) *Router
- func (r *Router) DELETE(path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) GET(path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) HEAD(path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) OPTIONS(path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) Or() *Router
- func (r *Router) PATCH(path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) POST(path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) PUT(path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) Request(method uint32, path string, fn SpringWeb.Handler) *Mapping
- func (r *Router) SetFilterNames(filterNames ...string) *Router
- func (r *Router) SetFilters(filters ...SpringWeb.Filter) *Router
- func (r *Router) SetPort(port int) *Router
- type WebMapping
Constants ¶
const ( DefaultConfigLocation = "config/" // 默认的配置文件路径 SpringAccess = "spring.access" // "all" 为允许注入私有字段 SPRING_ACCESS = "SPRING_ACCESS" SpringProfile = "spring.profile" // 运行环境 SPRING_PROFILE = "SPRING_PROFILE" SpringStrict = "spring.strict" // 严格模式,"true" 必须使用 AsInterface() 导出接口 SPRING_STRICT = "SPRING_STRICT" )
Variables ¶
var DefaultWebMapping = NewWebMapping()
DefaultWebMapping 默认的 Web 路由映射表
Functions ¶
func BindPropertyIf ¶
BindPropertyIf 根据类型获取属性值,属性名称统一转成小写。
func CollectBeans ¶
func CollectBeans(i interface{}) bool
CollectBeans 收集数组或指针定义的所有符合条件的 Bean 对象,收集到返回 true,否则返回 false。
func FindBean ¶
func FindBean(selector interface{}) (*SpringCore.BeanDefinition, bool)
FindBean 获取单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。 selector 可以是 BeanId,还可以是 (Type)(nil) 变量,Type 为接口类型时带指针。
func FindBeanByName ¶
FindBeanByName 根据名称和类型获取单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。
func GetBean ¶
func GetBean(i interface{}) bool
GetBean 根据类型获取单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。
func GetBeanByName ¶
GetBeanByName 根据名称和类型获取单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。
func GetBeanDefinitions ¶
func GetBeanDefinitions() []*SpringCore.BeanDefinition
GetBeanDefinitions 获取所有 Bean 的定义,一般仅供调试使用。
func GetBoolProperty ¶
GetBoolProperty 返回布尔型属性值,属性名称统一转成小写。
func GetDefaultProperty ¶
GetDefaultProperty 返回属性值,如果没有找到则使用指定的默认值,属性名称统一转成小写。
func GetDurationProperty ¶
GetDurationProperty 返回 Duration 类型属性值,属性名称统一转成小写。
func GetFloatProperty ¶
GetFloatProperty 返回浮点型属性值,属性名称统一转成小写。
func GetIntProperty ¶
GetIntProperty 返回有符号整型属性值,属性名称统一转成小写。
func GetPrefixProperties ¶
GetPrefixProperties 返回指定前缀的属性值集合,属性名称统一转成小写。
func GetStringProperty ¶
GetStringProperty 返回字符串型属性值,属性名称统一转成小写。
func GetTimeProperty ¶
GetTimeProperty 返回 Time 类型的属性值,属性名称统一转成小写。
func GetUintProperty ¶
GetUintProperty 返回无符号整型属性值,属性名称统一转成小写。
func NewConfigMapPropertySource ¶
func NewConfigMapPropertySource(filename string) *configMapPropertySource
NewConfigMapPropertySource configMapPropertySource 的构造函数
func NewDefaultPropertySource ¶
func NewDefaultPropertySource(fileLocation string) *defaultPropertySource
NewDefaultPropertySource defaultPropertySource 的构造函数
func RegisterBean ¶
func RegisterBean(bean interface{}) *SpringCore.BeanDefinition
RegisterBean 注册单例 Bean,不指定名称,重复注册会 panic。
func RegisterBeanFn ¶
func RegisterBeanFn(fn interface{}, tags ...string) *SpringCore.BeanDefinition
RegisterBeanFn 注册单例构造函数 Bean,不指定名称,重复注册会 panic。
func RegisterMethodBean ¶
func RegisterMethodBean(selector interface{}, method string, tags ...string) *SpringCore.BeanDefinition
RegisterMethodBean 注册成员方法单例 Bean,不指定名称,重复注册会 panic。 selector 可以是 *BeanDefinition,可以是 BeanId,还可以是 (Type)(nil) 变量。 必须给定方法名而不能通过遍历方法列表比较方法类型的方式获得函数名,因为不同方法的类型可能相同。 而且 interface 的方法类型不带 receiver 而成员方法的类型带有 receiver,两者类型不好匹配。
func RegisterNameBean ¶
func RegisterNameBean(name string, bean interface{}) *SpringCore.BeanDefinition
RegisterNameBean 注册单例 Bean,需指定名称,重复注册会 panic。
func RegisterNameBeanFn ¶
RegisterNameBeanFn 注册单例构造函数 Bean,需指定名称,重复注册会 panic。
func RegisterNameMethodBean ¶
func RegisterNameMethodBean(name string, selector interface{}, method string, tags ...string) *SpringCore.BeanDefinition
RegisterNameMethodBean 注册成员方法单例 Bean,需指定名称,重复注册会 panic。 selector 可以是 *BeanDefinition,可以是 BeanId,还可以是 (Type)(nil) 变量。 必须给定方法名而不能通过遍历方法列表比较方法类型的方式获得函数名,因为不同方法的类型可能相同。 而且 interface 的方法类型不带 receiver 而成员方法的类型带有 receiver,两者类型不好匹配。
func RunApplication ¶
func RunApplication(configLocation ...string)
RunApplication 快速启动 SpringBoot 应用
func SetEventNotify ¶
func SetEventNotify(notify func(event SpringCore.ContextEvent))
SetEventNotify 设置 Context 事件通知函数
Types ¶
type ApplicationContext ¶
type ApplicationContext interface { SpringCore.SpringContext // SafeGoroutine 安全地启动一个 goroutine SafeGoroutine(fn GoFunc) // Wait 等待所有 goroutine 退出 Wait() }
ApplicationContext Application 上下文
type ApplicationEvent ¶
type ApplicationEvent interface { OnStartApplication(ctx ApplicationContext) // 应用启动的事件 OnStopApplication(ctx ApplicationContext) // 应用停止的事件 }
ApplicationEvent 应用运行过程中的事件
type CommandLineRunner ¶
type CommandLineRunner interface {
Run(ctx ApplicationContext)
}
CommandLineRunner 命令行启动器接口
type Mapping ¶
type Mapping struct {
// contains filtered or unexported fields
}
Mapping 封装 Web 路由映射
func RequestMapping ¶
RequestMapping
func (*Mapping) ConditionNot ¶
ConditionNot 设置一个取反的 Condition
func (*Mapping) ConditionOn ¶
ConditionOn 设置一个 Condition
func (*Mapping) ConditionOnBean ¶
ConditionOnBean 设置一个 BeanCondition
func (*Mapping) ConditionOnExpression ¶
ConditionOnExpression 设置一个 ExpressionCondition
func (*Mapping) ConditionOnMatches ¶
ConditionOnMatches 设置一个 FunctionCondition
func (*Mapping) ConditionOnMissingBean ¶
ConditionOnMissingBean 设置一个 MissingBeanCondition
func (*Mapping) ConditionOnMissingProperty ¶
ConditionOnMissingProperty 设置一个 MissingPropertyCondition
func (*Mapping) ConditionOnProfile ¶
ConditionOnProfile 设置一个 ProfileCondition
func (*Mapping) ConditionOnProperty ¶
ConditionOnProperty 设置一个 PropertyCondition
func (*Mapping) ConditionOnPropertyValue ¶
ConditionOnPropertyValue 设置一个 PropertyValueCondition
func (*Mapping) SetFilterNames ¶
SetFilterNames 设置过滤器列表
func (*Mapping) SetFilters ¶
Filters 设置 Mapper 的过滤器列表
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
Router 路由分组
func NewRouter ¶
func NewRouter(mapping *WebMapping, basePath string) *Router
NewRouter Router 的构造函数
func (*Router) ConditionNot ¶
ConditionNot 设置一个取反的 Condition
func (*Router) ConditionOn ¶
ConditionOn 设置一个 Condition
func (*Router) ConditionOnBean ¶
ConditionOnBean 设置一个 BeanCondition
func (*Router) ConditionOnExpression ¶
ConditionOnExpression 设置一个 ExpressionCondition
func (*Router) ConditionOnMatches ¶
ConditionOnMatches 设置一个 FunctionCondition
func (*Router) ConditionOnMissingBean ¶
ConditionOnMissingBean 设置一个 MissingBeanCondition
func (*Router) ConditionOnMissingProperty ¶
ConditionOnMissingProperty 设置一个 MissingPropertyCondition
func (*Router) ConditionOnProfile ¶
ConditionOnProfile 设置一个 ProfileCondition
func (*Router) ConditionOnProperty ¶
ConditionOnProperty 设置一个 PropertyCondition
func (*Router) ConditionOnPropertyValue ¶
ConditionOnPropertyValue 设置一个 PropertyValueCondition
func (*Router) SetFilterNames ¶
SetFilterNames 设置过滤器列表
func (*Router) SetFilters ¶
Filters 设置过滤器列表
type WebMapping ¶
WebMapping Web 路由映射表