因此,我有一个使用Weld1.2进行依赖注入(inject)的基本JavaSE程序。一切正常,直到我将Hibernate与以下pom.xml依赖项一起使用:javaxjavaee-api7.0org.jboss.weld.seweld-se2.2.4.Finalorg.hibernatehibernate-core4.3.6.FinalHibernate是添加的依赖项,使其中断。这是我的入门课:publicclassEntryPoint{publicstaticvoidmain(String[]ARGV){Weldweld=newWeld();WeldContainercontaine
这是在启动Web应用程序之前执行一些任务的代码(我使用的是glassfish4):importjavax.annotation.PostConstruct;importjavax.annotation.PreDestroy;importjavax.ejb.Singleton;importjavax.ejb.Startup;importjavax.servlet.ServletContextEvent;/****@authorErnestasGruodis*/@Startup@SingletonpublicclassServerInit{/***Dosomecodeexecutionbe
我正在搭建学习JavaEE7中CDI的基础环境。我有以下用于启动Weld的代码。只是启动和关闭。packagecom.anshbansal;importorg.jboss.weld.environment.se.Weld;importorg.jboss.weld.environment.se.WeldContainer;publicclassMain{publicstaticvoidmain(String[]args){Weldweld=newWeld();WeldContainercontainer=weld.initialize();weld.shutdown();}}我正在关注我
假设我有:publicinterfaceFoo{...}publicclassAltProducer{privateFooaltFoo;@Produces@AlternativepublicFoogetAltFoo(){returnaltFoo;}}我需要在beans.xml中放入什么才能调用我的AltProducer的@Produces方法,而不是注入(inject)Bar? 最佳答案 找到了-您可以只指定整个生产者类作为替代。@AlternativepublicclassAltProducer{...}beans.xml:com
当我在类中使用字段注入(inject)时,像这样:@InjectprivateMyClassmyField;我可以对这个字段的“safepublication”状态做任何假设吗?或者换句话说,假设MyClass本身是线程安全的,那么在使用该字段时是否应该注意任何并发风险?我的本能通常是尽可能创建所有字段final,但这不适用于字段注入(inject)。当然,我可以使用构造函数注入(inject),但我通常最终不得不创建一个额外的“假”无参数构造函数来进行代理。问题不大,但使用字段注入(inject)更方便。另一种选择可能是将该字段标记为易变的(或者甚至对其使用锁...),但这真的有
我正在尝试将构造函数注入(inject)模式应用于我的CDI应用程序中的bean,但遇到以下错误消息:15:18:11,852ERROR[izone.adams.webapp.error.IzoneExceptionHandler](defaulttask-40)org.jboss.weld.exceptions.UnproxyableResolutionException:WELD-001435:Normalscopedbeanclasswebapp.util.LoginManagerActionisnotproxyablebecauseithasnono-argsconstruct
我尝试使用MVP范例构建Web应用程序。因为我希望API干净并使所有内容都易于测试,所以我尝试通过ContructorInjection注入(inject)所有可能的内容。现在我到了一个有多个文本字段的View的地步。当数据库中有值时,演示者会填充这些文本字段,因此我的演示者需要View的引用,但vie显然也需要演示者的引用。CDI告诉我,将Presenter注入(inject)到View中是不可能的,因为存在循环依赖性。是否可以避免通过setter方法在View中设置演示者?代码看起来像这样:查看:publicClassViewImplimplementsview{privatePr
当尝试将参数注入(inject)CDIbean(ApplicationScoped)的构造函数时,我遇到了以下问题:Causedby:org.jboss.weld.exceptions.UnproxyableResolutionException:WELD-001435:Normalscopedbeanclassxx.Configisnotproxyablebecauseithasnono-argsconstructor-ManagedBean[classxx.Config]withqualifiers[@Default@Named@Any].atorg.jboss.weld.bean
我正在构建基于Hibernate的基于Gradle的JavaSE应用程序作为我选择的ORM。我的计划是使用weld-se以便能够使用CDI注释在整个应用程序中注入(inject)EntityManagers。基于Hibernate文档中常见的HibernateUtil帮助程序类,我转向JPA接口(interface)并添加了@Produces注释以提供生产者方法(我添加了一个空的META-INF/beans.xml):packagedao;importjavax.enterprise.inject.Disposes;importjavax.enterprise.inject.Produ
我们有一种情况,我们以Map的形式为我们正在运行的程序提供外部配置。我发现JSR-330依赖注入(inject)提供了一种更简洁的方法来在代码中使用该配置映射,而不是传递映射或使用JNDI来获取它。@Inject@Named("server.username")Stringusername;让JSR-330实现自动填写此字段。使用Guice我可以设置值bindConstant().annotatedWith(Names.named(key)).to(value);我希望能够在Weld中做同样的事情(将“server.username”绑定(bind)到例如“foobar”)并且我知道该