<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jcdi_1.0_spec</artifactId>
<version>1.1.1</version>
</dependency>
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
@ApplicationScoped
public class MyService {
@Inject
private MyDao myDao;
public void doSomething() {
// ...
}
}
import org.apache.webbeans.spi.ContainerLifecycle;
public class CDIContainer {
private static ContainerLifecycle lifecycle;
public static void startContainer() {
lifecycle = WebBeansContext.currentInstance().getService(ContainerLifecycle.class);
lifecycle.startApplication(new BeanManagerProvider() {
@Override
protected BeanManager createBeanManager() {
return CDI.current().getBeanManager();
}
});
}
public static void stopContainer() {
if (lifecycle != null) {
lifecycle.stopApplication(null);
lifecycle = null;
}
}
}
public class MyApp {
public static void main(String[] args) {
CDIContainer.startContainer();
MyService myService = CDI.current().select(MyService.class).get();
myService.doSomething();
CDIContainer.stopContainer();
}
}