28 lines
		
	
	
		
			901 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			901 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"log"
 | 
						|
 | 
						|
	_ "git.huangwc.com/pig/pig-farm-controller/docs" // 引入 swag 生成的 docs
 | 
						|
	"git.huangwc.com/pig/pig-farm-controller/internal/core"
 | 
						|
)
 | 
						|
 | 
						|
func main() {
 | 
						|
	// 1. 创建应用实例
 | 
						|
	// 所有复杂的初始化逻辑都已封装在 NewApplication 中
 | 
						|
	app, err := core.NewApplication("config.yml")
 | 
						|
	if err != nil {
 | 
						|
		// 在应用启动的最早期阶段,如果核心组件创建失败,
 | 
						|
		// 我们的自定义 logger 可能还未初始化,因此这里使用标准库的 log.Fatalf
 | 
						|
		log.Fatalf("应用初始化失败: %v", err)
 | 
						|
	}
 | 
						|
 | 
						|
	// 2. 启动应用
 | 
						|
	// Start 方法会阻塞,直到应用被关闭
 | 
						|
	if err := app.Start(); err != nil {
 | 
						|
		// 如果 Start 过程(主要是优雅关闭阶段)出现错误,
 | 
						|
		// 此时我们的 logger 已经是可用的,可以用它来记录错误。
 | 
						|
		app.Logger.Errorf("应用启动或关闭时发生错误: %v", err)
 | 
						|
	}
 | 
						|
}
 |