SpringBoot

package
v1.0.0-alpha Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2019 License: Apache-2.0 Imports: 6 Imported by: 26

README

spring-boot

开箱即用的 Go-Spring 程序启动框架。

import (
	"fmt"
	"testing"
	"time"

	"github.com/go-spring/go-spring/boot-starter"
	"github.com/go-spring/go-spring/spring-boot"
	"github.com/go-spring/go-spring/spring-core"
)

func init() {
	SpringBoot.RegisterModule(func(ctx SpringCore.SpringContext) {
		ctx.RegisterBean(new(MyModule))
	})
}

type MyModule struct {
}

func (m *MyModule) OnStartApplication(ctx SpringBoot.ApplicationContext) {
	fmt.Println("MyModule start")

	ctx.SafeGoroutine(func() {

		defer fmt.Println("go stop")
		fmt.Println("go start")

		time.Sleep(200 * time.Millisecond)
		BootStarter.Exit()
	})
}

func (m *MyModule) OnStopApplication(ctx SpringBoot.ApplicationContext) {
	fmt.Println("MyModule stop")
}

func TestRunApplication(t *testing.T) {
	SpringBoot.RunApplication("config/")
}

Documentation

Overview

开箱即用的 Go-Spring 程序启动框架。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterModule

func RegisterModule(fn ModuleFunc)

注册 SpringBoot 模块。

func RunApplication

func RunApplication(configLocation string)

启动 SpringBoot 应用。

Types

type Application

type Application struct {
	AppContext     ApplicationContext // 应用上下文
	ConfigLocation string             // 配置文件目录
}

定义 SpringBoot 应用。

func NewApplication added in v1.0.4

func NewApplication(configLocation string) *Application

工厂函数

func (*Application) ShutDown

func (app *Application) ShutDown()

BootStarter.AppRunner.$ShutDown

func (*Application) Start

func (app *Application) Start()

BootStarter.AppRunner.$Start

type ApplicationContext

type ApplicationContext interface {
	// 继承 SpringContext 的功能。
	SpringCore.SpringContext

	// 安全的启动一个 goroutine。
	SafeGoroutine(fn GoFunc)

	// 等待所有 goroutine 退出。
	Wait()
}

定义 Application 上下文。

type ApplicationEvent

type ApplicationEvent interface {
	OnStartApplication(ctx ApplicationContext) // 应用启动的事件
	OnStopApplication(ctx ApplicationContext)  // 应用停止的事件
}

应用运行过程中的事件。

type DefaultApplicationContext

type DefaultApplicationContext struct {
	*SpringCore.DefaultSpringContext
	// contains filtered or unexported fields
}

定义 ApplicationContext 的默认版本。

func NewDefaultApplicationContext

func NewDefaultApplicationContext() *DefaultApplicationContext

工厂函数

func (*DefaultApplicationContext) SafeGoroutine

func (ctx *DefaultApplicationContext) SafeGoroutine(fn GoFunc)

安全地启动一个 goroutine。

func (*DefaultApplicationContext) Wait

func (ctx *DefaultApplicationContext) Wait()

等待所有 goroutine 安全地退出。

type GoFunc

type GoFunc func()

type ModuleFunc

type ModuleFunc func(SpringCore.SpringContext)

定义 SpringBoot 模块初始化函数。

Jump to

Keyboard shortcuts

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