Skip to content

Simple Dependency Injection Container for Golang

License

Notifications You must be signed in to change notification settings

spantaleev/go-service

 
 

Repository files navigation

Go Service Container Last release

Go Report Card

Branch Status Coverage
master Build Status Coveralls
develop Build Status Coveralls

Simple Dependency Injection Container for Golang

Example

package main

import (
    "fmt"
    "github.com/euskadi31/go-service"
)

type MyService struct {
    name string
}

func (s *MyService) SetName(name string) {
    s.name = name
}

func (s *MyService) Name() string {
    return s.name
}

func main() {
    sc := service.New()

    // Define service
    sc.Set("my.service", func(c *service.Container) interface{} {
        return &MyService{}
    })

    // Extend service
    sc.Extend("my.service", func(s *MyService) *MyService {
        s.SetName("My Service")

        return s
    })

    // Call service 
    myService := sc.Get("my.service").(*MyService)

    fmt.Printf("Service Name: %s", myService.Name())
}

License

go-service is licensed under the MIT license.

About

Simple Dependency Injection Container for Golang

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 90.4%
  • Makefile 9.6%