func (s *AutoEmptyString) SetOnce(v string) {
	s.value = v
}
SetOnce set a value once
package examples
import (
	"database/sql"
	"fmt"
	"time"
	"github.com/gin-gonic/gin"
	"github.com/yedf/dtm/common"
	"github.com/yedf/dtm/dtmcli"
	"gorm.io/driver/mysql"
	"gorm.io/driver/postgres"
	"gorm.io/gorm"
)
const (
	BusiAPI = "/api/busi"
	BusiPort = 8081
	BusiGrpcPort = 58081
)
type setupFunc func(*gin.Engine)
var setupFuncs = map[string]setupFunc{}
var Busi string = fmt.Sprintf("http://localhost:%d%s", BusiPort, BusiAPI)
func BaseAppStartup() *gin.Engine {
	dtmcli.Logf("examples starting")
	app := common.GetGinApp()
	BaseAddRoute(app)
	for k, v := range setupFuncs {
		dtmcli.Logf("initing %s", k)
		v(app)
	}
	dtmcli.Logf("Starting busi at: %d", BusiPort)
	go app.Run(fmt.Sprintf(":%d", BusiPort))
	time.Sleep(100 * time.Millisecond)
	return app
}
type AutoEmptyString struct {
	value string
}