UnsafeMode不安全模式

  • golang通过大小写区分访问权限,未导出字段默认无法通过反射修改完成注入。

  • 因此DI提供了不安全模式,通过unsafe.Pointer达到对私有属性的修改注入。

实例

package main

import (
	"github.com/cheivin/di"
)

type (
	Dao struct {
	}
	AService struct {
		dao  *Dao   `aware:"dao"`
		name string `value:"name"`
	}
)

func main() {
	di.Provide(Dao{}).
		Provide(AService{}).
		SetProperty("name", "name").
		UnsafeMode(true). // 不安全模式
		Load()
}

最后更新于