提交 30d321fb 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

增加了 配置管理功能

上级 e921a78d
package cmd
import (
"fmt"
"gin-vue-admin/config"
"github.com/fvbock/endless"
"github.com/gin-gonic/gin"
"syscall"
"time"
)
func RunLinuxServer(Router *gin.Engine) {
endless.DefaultReadTimeOut = 10 * time.Second
endless.DefaultWriteTimeOut = 10 * time.Second
endless.DefaultMaxHeaderBytes = 1 << 20
endPoint := fmt.Sprintf(":%d", config.GinVueAdminconfig.System.Addr)
server := endless.NewServer(endPoint, Router)
server.BeforeBegin = func(add string) {
fmt.Printf(`欢迎使用 Gin-Vue-Admin
作者:奇淼 And Spike666
微信:shouzi_1994
默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
默认前端文件运行地址:http://127.0.0.1:8080
Actual pid is %d
`, fmt.Sprintf(":%d", config.GinVueAdminconfig.System.Addr), syscall.Getpid())
}
err := server.ListenAndServe()
if err != nil {
fmt.Printf("Server err: %v", err)
}
}
package cmd
import (
"fmt"
"gin-vue-admin/config"
"github.com/gin-gonic/gin"
"net/http"
"time"
)
func RunWindowsServer(Router *gin.Engine) {
s := &http.Server{
Addr: fmt.Sprintf(":%d", config.GinVueAdminconfig.System.Addr),
Handler: Router,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
time.Sleep(10 * time.Microsecond)
fmt.Printf(`欢迎使用 Gin-Vue-Admin
作者:奇淼 And Spike666
微信:shouzi_1994
默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
默认前端文件运行地址:http://127.0.0.1:8080
`, s.Addr)
_ = s.ListenAndServe()
}
...@@ -18,6 +18,7 @@ type Config struct { ...@@ -18,6 +18,7 @@ type Config struct {
type System struct { // 系统配置 type System struct { // 系统配置
UseMultipoint bool `json:"useMultipoint"` UseMultipoint bool `json:"useMultipoint"`
Env string `json:"env"` Env string `json:"env"`
Addr int `json:"addr"`
} }
type JWT struct { // jwt签名 type JWT struct { // jwt签名
......
...@@ -39,3 +39,21 @@ func SetSystemConfig(c *gin.Context) { ...@@ -39,3 +39,21 @@ func SetSystemConfig(c *gin.Context) {
servers.ReportFormat(c, true, "设置成功", gin.H{}) servers.ReportFormat(c, true, "设置成功", gin.H{})
} }
} }
// @Tags system
// @Summary 设置配置文件内容
// @Security ApiKeyAuth
// @Produce application/json
// @Param data body sysModel.System true
// @Success 200 {string} string "{"success":true,"data":{},"msg":"返回成功"}"
// @Router /system/ReloadSystem [post]
func ReloadSystem(c *gin.Context) {
var sys sysModel.System
_ = c.ShouldBind(&sys)
err := sys.SetSystemConfig()
if err != nil {
servers.ReportFormat(c, false, fmt.Sprintf("设置失败:%v", err), gin.H{})
} else {
servers.ReportFormat(c, true, "设置成功", gin.H{})
}
}
...@@ -9,6 +9,7 @@ require ( ...@@ -9,6 +9,7 @@ require (
github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 // indirect github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 // indirect
github.com/fsnotify/fsnotify v1.4.7 github.com/fsnotify/fsnotify v1.4.7
github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6
github.com/gin-gonic/gin v1.4.0 github.com/gin-gonic/gin v1.4.0
github.com/go-redis/redis v6.15.6+incompatible github.com/go-redis/redis v6.15.6+incompatible
github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 // indirect github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 // indirect
......
package main package main
import ( import (
"fmt" "gin-vue-admin/cmd"
"gin-vue-admin/config" "gin-vue-admin/config"
"gin-vue-admin/init/initRedis" "gin-vue-admin/init/initRedis"
"gin-vue-admin/init/initRouter" "gin-vue-admin/init/initRouter"
"gin-vue-admin/init/qmlog" "gin-vue-admin/init/qmlog"
"gin-vue-admin/init/qmsql" "gin-vue-admin/init/qmsql"
"gin-vue-admin/init/registTable" "gin-vue-admin/init/registTable"
"net/http" "runtime"
"time"
) )
// @title Swagger Example API // @title Swagger Example API
...@@ -21,29 +20,24 @@ import ( ...@@ -21,29 +20,24 @@ import (
// @BasePath / // @BasePath /
func main() { func main() {
qmlog.InitLog() // 初始化日志 qmlog.InitLog() // 初始化日志
db := qmsql.InitMysql(config.GinVueAdminconfig.MysqlAdmin) // 链接初始化数据库 db := qmsql.InitMysql(config.GinVueAdminconfig.MysqlAdmin) // 链接初始化数据库
if config.GinVueAdminconfig.System.UseMultipoint { if config.GinVueAdminconfig.System.UseMultipoint {
_ = initRedis.InitRedis() // 初始化redis服务 _ = initRedis.InitRedis() // 初始化redis服务
} }
registTable.RegistTable(db) //注册数据库表 registTable.RegistTable(db) // 注册数据库表
defer qmsql.DEFAULTDB.Close() // 程序结束前关闭数据库链接 defer qmsql.DEFAULTDB.Close() // 程序结束前关闭数据库链接
Router := initRouter.InitRouter() //注册路由 Router := initRouter.InitRouter() // 注册路由
qmlog.QMLog.Info("服务器开启") // 日志测试代码 qmlog.QMLog.Info("服务器开启") // 日志测试代码
//Router.RunTLS(":443","ssl.pem", "ssl.key") // https支持 需要添加中间件 //Router.RunTLS(":443","ssl.pem", "ssl.key") // https支持 需要添加中间件
s := &http.Server{ sysType := runtime.GOOS
Addr: ":8888", if sysType == "linux" {
Handler: Router, // LINUX系统
ReadTimeout: 10 * time.Second, cmd.RunLinuxServer(Router)
WriteTimeout: 10 * time.Second, }
MaxHeaderBytes: 1 << 20, if sysType == "windows" {
// WIN系统
cmd.RunWindowsServer(Router)
} }
time.Sleep(10 * time.Microsecond)
fmt.Printf(`欢迎使用 Gin-Vue-Admin
作者:奇淼 And Spike666
微信:shouzi_1994
默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
默认前端文件运行地址:http://127.0.0.1:8080
`, s.Addr)
_ = s.ListenAndServe()
} }
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
}, },
"system": { "system": {
"useMultipoint": false, "useMultipoint": false,
"env": "develop" "env": "develop",
"addr": 8888
} }
} }
\ No newline at end of file
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
<el-form-item label="环境值"> <el-form-item label="环境值">
<el-input v-model="config.system.env"></el-input> <el-input v-model="config.system.env"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="端口值">
<el-input v-model="config.system.addr"></el-input>
</el-form-item>
<h2>jwt签名</h2> <h2>jwt签名</h2>
<el-form-item label="jwt签名"> <el-form-item label="jwt签名">
<el-input v-model="config.jwt.signingKey"></el-input> <el-input v-model="config.jwt.signingKey"></el-input>
...@@ -88,8 +91,8 @@ export default { ...@@ -88,8 +91,8 @@ export default {
const res = await setSystemConfig({ config: this.config }) const res = await setSystemConfig({ config: this.config })
if (res.success) { if (res.success) {
this.$message({ this.$message({
type:"success", type: 'success',
message:"配置文件设置成功" message: '配置文件设置成功'
}) })
await this.initForm() await this.initForm()
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册