[beego]请添加多种new beego app的方式

2024-01-30 445 views
7

目前,beego框架貌似只能通过配置文件new 一个beego环境,希望能支持直接使用代码new 一个 beego 出来,类似于Spring可以使用xml初始化Context,也可以直接new 一个ApplicationContext 初始化 Spring,方便beego嵌入别的环境,另外方便程序启动的时候在运行时动态设置应用配置。

回答

9

不知道spring是怎么样的,你需求不是很了解,方便beego嵌入别的环境能描述一下你期望的需求是怎么样的吗?最好有一点伪代码之类的

7

嗯 这是默认的一个beego应用的启动入口

package main

import (
    "github.com/astaxie/beego"
    _ "github.com/jack230230/test/routers"
)

func main() {
    beego.Run()
}

要做嵌入别的应用,就要做到,这样

package main

import (
    "github.com/astaxie/beego"
    _ "github.com/jack230230/test/routers"
)

func main() {

//伪码

        //do something others
        ...
        var app *beego.BeeApp = beego.GetInstance()

        app.SetConfig("port",1234)
        app.SetConfig("appname","demo_for_something")
        app.SetConfig(......)
        app.SetConfig(......)
        go app.Run()
        ...
        //do something others
}

就是把 beeApp 嵌入别的环境,当代码执行到这里时可以不通过配置文件来初始化beeApp,可在运行时根据情况来初始化并运行beego。不知是否理解我的意思?

6

现在也支持这样的方式啊:

你的app就是beego里面的beego.BeeApp, 已经帮你初始化了,你可以设置各种信息,然后执行Run

0

哦,原来是支持的,不过文档中貌似没找到,看了源码才知道的

8

这个文档里面没必要说明吧,不过你既然说了我等会儿加上去吧