golang aspect tool
go-aspect是一个为golang提供切面编程可能性的工具,可以使用该工具,替换原有的go build来进行编译,将预先配置好的切面编织到目标代码中
aspect.point
文件进行,文件样例如下:import “context”
import “fmt”
import “time”
point after(test.*X.Inject(c Context)) {
fmt.Println(“456”)
fmt.Println(“789”)
}
point before(test.Do(c Context)) {
{{c}} = context.WithValue({{c}}, “date”, time.Now())
}
文件分成两部分,
1. 添加import依赖
2. 对应的point切入点信息,下文是对其的解释
```bigquery
//固定值point 织入方式 对应的函数 方法参数
point before(test.Do(c Context)) {
// 织入的代码
{{c}} = context.WithValue({{c}}, "date", time.Now())
}
point after(test.*X.Inject(c Context, m map, s slice, i interface, f func)) {