Guice声明性与方法语法

时间:2014-12-05 10:07:34

标签: java dependency-injection guice

我是Guice的新手,希望知道其含义(或以下内容之间的区别):

@SessionScoped
public class Counter {
 int count = 0;

拥有Counter作为成员的每个人都会拥有相同的Counter单例实例吗?

这种语法有什么区别?如果没有to(),这一行的含义是什么?

bind(MySingleton.class).in(Scopes.SINGLETON);

还:

以下是init inhector的代码:

公共类ClientApplication {

    public static void main(String[] args) {
        Injector injector = Guice.createInjector(new AppInjector());        

        MyApplication app = injector.getInstance(MyApplication.class);

        app.sendMessage("Hi Pankaj", "pankaj@abc.com");
    }
 }

当我没有自己的main方法时,如何启动注射器?

例如。正在运行CucamberJunit

1 个答案:

答案 0 :(得分:0)

没有to()问题,它等同于bind(MySingleton.class).to(MySingleton.class),但这是由guice隐式完成的。

用guice进行测试,我个人使用

    <dependency>
        <groupId>org.grouplens.common</groupId>
        <artifactId>common-test</artifactId>
        <version>0.4</version>
    </dependency>

代码如下所示:

@RunWith(GuiceTestRunner.class)
@TestModule(CoreModule.class)
public class EnvironmentSetupTest extends CamelTestSupport