go get github.com/rizvn/registryCreate a registry instance and initialize it:
register := registry.Registry{}
register.Init()Define a Registerable instance
type Db struct {
dbx *sqlx.DB
gorm *gorm.DB
DbHost string
DbPort string
DbUser string
DbPass string
DBName string
DbParams string
}
// Register implements the registry.Registerable interface
func (r *Db) Register(reg *registry.Registry) {
r.DbUser = util.GetRequiredEnvVar("DB_USER")
r.DbPass = util.GetRequiredEnvVar("DB_PASS")
r.DbHost = util.GetRequiredEnvVar("DB_HOST")
r.DbPort = util.GetRequiredEnvVar("DB_PORT")
r.DBName = util.GetRequiredEnvVar("DB_NAME")
r.DbParams = os.Getenv("DB_PARAMS")
// .. additional initialization logic..
// Set the instance in the registry
reg.Set(r)
}Add a registerable instance
register.Add(&db.Db{})Build Register
register.Build()Access the registered instance
dbInstance := register.Get(&db.Db{}).(*db.Db)