| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | package inject/*import (	"runtime"	"tmr-watch/conf/setting"	"tmr-watch/service/bll"	"github.com/casbin/casbin"	"github.com/facebookgo/inject")// Object 注入对象type Object struct {	Common   *bll.Common	Enforcer *casbin.Enforcer}var Obj *Object// Init 初始化依赖注入func Init() {	g := new(inject.Graph)	// 注入casbin	osType := runtime.GOOS	var path string	if osType == "windows" {		path = setting.CurrentPath + "conf\\rbac_model.conf"	} else if osType == "linux" {		path = setting.CurrentPath + "conf/rbac_model.conf"	}	enforcer := casbin.NewEnforcer(path, false)	_ = g.Provide(&inject.Object{Value: enforcer})	Common := new(bll.Common)	_ = g.Provide(&inject.Object{Value: Common})	if err := g.Populate(); err != nil {		panic("初始化依赖注入发生错误:" + err.Error())	}	Obj = &Object{		Enforcer: enforcer,		Common:   Common,	}	return}//var instance *Object//var once sync.Once////func GetInstance() *Object {//	once.Do(func() {//		instance = Init()//	})//	return instance//}// 加载casbin策略数据,包括角色权限数据、用户角色数据func LoadCasbinPolicyData() error {	c := Obj.Common	err := c.RoleAPI.LoadAllPolicy()	if err != nil {		return err	}	err = c.UserAPI.LoadAllPolicy()	if err != nil {		return err	}	return nil}*/
 |