ale*_*440 5 java testng singleton openejb
我有一个看起来像这样的课:
@Singleton
public class MySingletonImpl implements MySingleton{
@Override
public void init(){
...
}
@Override
public void test(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
从ApplicationComposer
testng
测试调用它看起来像这样:
@Listeners(ApplicationComposerListener.class)
public class MyTest{
@EJB
MySingleton mySingleton;
@Module
@Classes(cdi=true, value={MySingletonImpl.class})
public EjbModule ejbModule() throws Exception{
return new EjbModule(new EjbJar());
}
@BeforeClass
public void setup(){
mySingleton.init();
}
@Test
public void test(){
mySigleton.test();
}
}
Run Code Online (Sandbox Code Playgroud)
我在测试运行时观察到的问题是,该方法调用object id
的MySingletonImpl
类实例与test()
调用该方法的实例不同init()
.
这种行为似乎很奇怪.
首先,我的问题如何解决?我想初始化然后在同一个对象上调用方法,而不是同一个类的不同实例.
第二,为什么容器会实例化多个@Singleton
s?
归档时间: |
|
查看次数: |
74 次 |
最近记录: |