如何将依赖项注入包中?

I want to place the handler functions of a gRPC server into a package but need to inject dependencies with a Env struct. How can I do this?

I created another package where the Env struct is located and imported this into the handler package and into the main

Main:

package main

import (
    "log"
    "net"

    "google.golang.org/grpc"
    pb "google.golang.org/grpc/examples/helloworld/helloworld"
    "dep/models"
)

func main() {
    env := &models.Env{Addr: ":2222"}

    lis, err := net.Listen("tcp", env.Addr)
    if err != nil {
        log.Fatalf("failed to listen: %v", err)
    }
    s := grpc.NewServer()

    pb.RegisterGreeterServer(s, env)

    log.Println("started")
    if err := s.Serve(lis); err != nil {
        log.Fatalf("failed to serve: %v", err)
    }
}

handlers:

package handlers

import (
    "google.golang.org/grpc/examples/helloworld/helloworld"
    "context"
    "dep/models"
)

func (e models.Env) SayHello(context.Context, *helloworld.HelloRequest) (*helloworld.HelloReply, error) {
    panic("implement me")
}

models:

package models

type Env struct{
    Addr string
}

I expected that the dependency can be injected.