@Inject сам secontainerJAVA

Программисты JAVA общаются здесь
Anonymous
@Inject сам secontainer

Сообщение Anonymous »

Существует ли способ внедрить сам secontainer < /code>? Я не хочу зависеть от конкретной реализации CDI, и я хотел бы достичь чего-то подобного: < /p>

Код: Выделить всё

@ApplicationScoped
public class PicocliCDIFactory implements CommandLine.IFactory {
private final SeContainer container;

@Inject
public PicocliCDIFactory(SeContainer container) {
this.container = container;
}

@Override
public  K create(Class cls) throws Exception {
return container.select(cls).get();
}

}
< /code>
Я в настоящее время использую Weld, и это не удается с: < /p>
Exception in thread "main" org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type SeContainer with qualifiers @Default
at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public com.example.project.PicocliCDIFactory(SeContainer)
at com.example.project.PicocliCDIFactory.(PicocliCDIFactory.java:0)

at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:397)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:312)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:159)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:181)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:552)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:65)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:63)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55)
at org.jboss.weld.executor.CommonForkJoinPoolExecutorServices.lambda$wrap$0(CommonForkJoinPoolExecutorServices.java:70)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedInterruptibleCallable.exec(ForkJoinTask.java:1489)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

Я также попытался внедрить экземпляр , но это неразрешимое. Cdi.current () для получения объекта CDI и использования его для создания экземпляров.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ner-itself

Вернуться в «JAVA»