一、中间件的实现
package main
import (
"fmt"
"net/http"
)
//定义一个结构体
type HelloHandler struct {}
//给结构体绑定一个方法
func (hh *HelloHandler) ServeHTTP(w http.ResponseWriter,r *http.Request) {
fmt.Fprintln(w,"你好呀!")
}
//定义一个函数.实现中间件功能
func logHandler(h http.Handler) http.Handler {
handlerFunc := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Printf("%T\n", h)
h.ServeHTTP(w, r)
})
return handlerFunc
}
func main() {
handler := &HelloHandler{}
http.Handle("/hi",handler)
http.ListenAndServe(":8080",nil)
}