# README
spring-boot
该包提供了一种基于 spring-core 的启动框架。
package main
import (
"github.com/go-spring/go-spring/spring-boot"
_ "github.com/go-spring/go-spring/starter-echo"
)
func init() {
SpringBoot.RegisterBean(new(Echo)).Init(func(e *Echo) {
SpringBoot.GetBinding("/", e.Call)
})
}
type Echo struct {
GoPath string `value:"${GOPATH}"`
}
func (e *Echo) Call() string {
return e.GoPath
}
func main() {
SpringBoot.RunApplication()
}
# Functions
AfterPrepare 注册一个 app.prepare() 执行完成之后的扩展点.
AllAccess 返回是否允许访问私有字段.
BindConsumer 注册 BIND 形式的消息消费者.
BindProperty 根据类型获取属性值,属性名称统一转成小写。.
BindPropertyIf 根据类型获取属性值,属性名称统一转成小写。.
CollectBeans 收集数组或指针定义的所有符合条件的 Bean,收集到返回 true,否则返 回 false。该函数有两种模式:自动模式和指定模式。自动模式是指 selectors 参数为空, 这时候不仅会收集符合条件的单例 Bean,还会收集符合条件的数组 Bean (是指数组的元素 符合条件,然后把数组元素拆开一个个放到收集结果里面)。指定模式是指 selectors 参数 不为空,这时候只会收集单例 Bean,而且要求这些单例 Bean 不仅需要满足收集条件,而且 必须满足 selector 条件。另外,自动模式下不对收集结果进行排序,指定模式下根据 selectors 列表的顺序对收集结果进行排序。.
Config 注册一个配置函数.
ConfigWithName 注册一个配置函数,名称的作用是对 Config 进行排重和排顺序。.
DeleteBinding 注册 DELETE 方法处理函数.
DeleteMapping 注册 DELETE 方法处理函数.
Exit 退出 SpringBoot 应用.
ExpectSysProperties 期望从系统环境变量中获取到的属性,支持正则表达式.
Filter 封装一个 SpringWeb.Filter 对象.
FilterBean 封装一个 Bean 选择器.
FindBean 查询单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。 它和 GetBean 的区别是它在调用后不能保证返回的 Bean 已经完成了注入和绑定过程。.
GetBean 获取单例 Bean,若多于 1 个则 panic;找到返回 true 否则返回 false。 它和 FindBean 的区别是它在调用后能够保证返回的 Bean 已经完成了注入和绑定过程。.
GetBeanDefinitions 获取所有 Bean 的定义,不能保证解析和注入,请谨慎使用该函数!.
GetBinding 注册 GET 方法处理函数.
GetBoolProperty 返回 keys 中第一个存在的布尔型属性值,属性名称统一转成小写。.
GetDefaultProperty 返回属性值,如果没有找到则使用指定的默认值,属性名称统一转成小写。.
GetDurationProperty 返回 keys 中第一个存在的 Duration 类型属性值,属性名称统一转成小写。.
GetFloatProperty 返回 keys 中第一个存在的浮点型属性值,属性名称统一转成小写。.
GetIntProperty 返回 keys 中第一个存在的有符号整型属性值,属性名称统一转成小写。.
GetMapping 注册 GET 方法处理函数.
GetPrefixProperties 返回指定前缀的属性值集合,属性名称统一转成小写。.
GetProfile 返回运行环境.
GetProperties 返回所有的属性值,属性名称统一转成小写。.
GetProperty 返回 keys 中第一个存在的属性值,属性名称统一转成小写。.
GetStringProperty 返回 keys 中第一个存在的字符串型属性值,属性名称统一转成小写。.
GetTimeProperty 返回 keys 中第一个存在的 Time 类型的属性值,属性名称统一转成小写。.
GetUintProperty 返回 keys 中第一个存在的无符号整型属性值,属性名称统一转成小写。.
Go 安全地启动一个 goroutine.
HandleDelete 注册 DELETE 方法处理函数.
HandleGet 注册 GET 方法处理函数.
HandlePost 注册 POST 方法处理函数.
HandlePut 注册 PUT 方法处理函数.
NewApplication AppBuilder 的构造函数.
NewFileConfigReader FileConfigReader 的构造函数.
NewWebMapping WebMapping 的构造函数.
PostBinding 注册 POST 方法处理函数.
PostMapping 注册 POST 方法处理函数.
PropertiesReader 使用 properties 读取配置文件.
PutBinding 注册 PUT 方法处理函数.
PutMapping 注册 PUT 方法处理函数.
RegisterBean 注册单例 Bean,不指定名称,重复注册会 panic。.
RegisterBeanDefinition 注册 BeanDefinition 对象,如果需要 Name 请在调用之前准备好。.
RegisterBeanFn 注册单例构造函数 Bean,不指定名称,重复注册会 panic。.
RegisterConfigReader 注册配置读取器.
RegisterFileConfigReader 注册基于文件的配置读取器.
RegisterFilter 注册 Web Filter 对象 Bean,如果需要 Name 请在调用之前准备好。.
RegisterGRpcClient 注册 gRPC 服务客户端,fn 是 gRPC 自动生成的客户端构造函数.
RegisterGRpcServer 注册 gRPC 服务提供者,fn 是 gRPC 自动生成的服务注册函数,serviceName 是服务名称, 必须对应 *_grpc.pg.go 文件里面 grpc.ServiceDesc 的 ServiceName 字段,server 是服务具体提供者对象。.
RegisterMethodBean 注册成员方法单例 Bean,不指定名称,重复注册会 panic。 必须给定方法名而不能通过遍历方法列表比较方法类型的方式获得函数名,因为不同方法的类型可能相同。 而且 interface 的方法类型不带 receiver 而成员方法的类型带有 receiver,两者类型也不好匹配。.
@Incubate 注册成员方法单例 Bean,不指定名称,重复注册会 panic。 method 形如 ServerInterface.Consumer (接口) 或 (*Server).Consumer (类型)。.
RegisterNameBean 注册单例 Bean,需指定名称,重复注册会 panic。.
RegisterNameBeanFn 注册单例构造函数 Bean,需指定名称,重复注册会 panic。.
RegisterNameMethodBean 注册成员方法单例 Bean,需指定名称,重复注册会 panic。 必须给定方法名而不能通过遍历方法列表比较方法类型的方式获得函数名,因为不同方法的类型可能相同。 而且 interface 的方法类型不带 receiver 而成员方法的类型带有 receiver,两者类型也不好匹配。.
@Incubate 注册成员方法单例 Bean,需指定名称,重复注册会 panic。 method 形如 ServerInterface.Consumer (接口) 或 (*Server).Consumer (类型)。.
RegisterPropertySource 注册属性源.
Request 注册任意 HTTP 方法处理函数.
RequestBinding 注册任意 HTTP 方法处理函数.
RequestMapping 注册任意 HTTP 方法处理函数.
Route 返回和 Mapping 绑定的路由分组.
Run 根据条件判断是否立即执行一个一次性的任务.
RunApplication 快速启动 SpringBoot 应用.
RunNow 立即执行一个一次性的任务.
RunTestApplication 启动测试程序,waiting 是测试用例开始前的等待时间,因为不知道程序启动器何时完成.
SetAllAccess 设置是否允许访问私有字段.
SetBanner 设置自定义 Banner 字符串.
SetBannerMode 设置 Banner 的显式模式.
SetProfile 设置运行环境.
SetProperty 设置属性值,属性名称统一转成小写。.
ViperReadBuffer 使用 viper 读取配置文件.
WireBean 对外部的 Bean 进行依赖注入和属性绑定.
# Constants
No description provided by the author
No description provided by the author
默认的配置文件路径.
No description provided by the author
No description provided by the author
"all" 为允许注入私有字段.
运行环境.
# Variables
BindConsumerMapping 以 BIND 形式注册的消息消费者的映射表.
DefaultWebMapping 默认的 Web 路由映射表.
GRpcServerMap gRPC 服务列表.
# Structs
AppBuilder application 的构造器.
ApplicationConfig 应用程序的配置.
ConditionalBindConsumer 为 BindConsumer 添加条件功能.
ConditionalWebFilter 为 SpringWeb.Filter 增加一个判断条件.
FileConfigReader 基于文件的配置读取器.
No description provided by the author
JUnitRunner 测试集执行器.
Mapping 封装 Web 路由映射.
Router 路由分组.
WebFilterArray 首字母小写太难看,因此不管它是否真正需要公开.
WebFilterArray 首字母小写太难看,因此不管它是否真正需要公开.
WebMapping Web 路由映射表.
# Interfaces
ApplicationEvent 应用运行过程中的事件.
CommandLineRunner 命令行启动器接口.
ConfigReader 配置读取器接口.
JUnitSuite 测试用例集接口.
PropertySource 属性源接口.
WebFilterArray 首字母小写太难看,因此不管它是否真正需要公开.
# Type aliases
AfterPrepareFunc 定义 app.prepare() 执行完成之后的扩展点.
思来想去很多遍,看着这个空空的 ApplicationContext 越发感觉多余, 但是我也想不清楚未来到底需不需要更多功能,幸好 GoLang 提供了类型 等价定义的语法,如果未来没有新的用法被探索出来,就去掉下面的实现。.
No description provided by the author
No description provided by the author
No description provided by the author