Previous topic

Advanced

Next topic

Scope

This Page

ProviderΒΆ

By default bindings are created a cached provider, you can change this behavior by using a standard provider:

class Foo
class Bar

object AppContext extends Context {
  override val bindings = Bindings(
    bind[Foo] to new Foo,
    bind[Bar] to provider { new Bar }
  )
}

Let’s see it in action:

scala> AppContext.inject[Foo]
res0: Foo = Foo@6beb3926

scala> AppContext.inject[Foo]
res1: Foo = Foo@6beb3926

scala> AppContext.inject[Bar]
res2: Bar = Bar@6e1513f3

scala> AppContext.inject[Bar]
res3: Bar = Bar@1e2db6ea