草庐IT

java - Hibernate 使 Weld 不在 Java SE 中初始化

因此,我有一个使用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

java - EJB 警告 : WELD-000411: . .. 考虑使用 @WithAnnotations 或具有边界的通用类型来限制事件

这是在启动Web应用程序之前执行一些任务的代码(我使用的是glassfish4):importjavax.annotation.PostConstruct;importjavax.annotation.PreDestroy;importjavax.ejb.Singleton;importjavax.ejb.Startup;importjavax.servlet.ServletContextEvent;/****@authorErnestasGruodis*/@Startup@SingletonpublicclassServerInit{/***Dosomecodeexecutionbe

java - Weld 未正确初始化

我正在搭建学习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();}}我正在关注我

java - 如何在 beans.xml 中指定 @Alternative 生产者方法?

假设我有:publicinterfaceFoo{...}publicclassAltProducer{privateFooaltFoo;@Produces@AlternativepublicFoogetAltFoo(){returnaltFoo;}}我需要在beans.xml中放入什么才能调用我的AltProducer的@Produces方法,而不是注入(inject)Bar? 最佳答案 找到了-您可以只指定整个生产者类作为替代。@AlternativepublicclassAltProducer{...}beans.xml:com

java - 注入(inject) (@Inject) 字段是否已安全发布?

当我在类中使用字段注入(inject)时,像这样:@InjectprivateMyClassmyField;我可以对这个字段的“safepublication”状态做任何假设吗?或者换句话说,假设MyClass本身是线程安全的,那么在使用该字段时是否应该注意任何并发风险?我的本​​能通常是尽可能创建所有字段final,但这不适用于字段注入(inject)。当然,我可以使用构造函数注入(inject),但我通常最终不得不创建一个额外的“假”无参数构造函数来进行代理。问题不大,但使用字段注入(inject)更方便。另一种选择可能是将该字段标记为易变的(或者甚至对其使用锁...),但这真的有

java - 为什么我需要一个无参数构造函数来在 CDI 中使用 ApplicationScoped bean 和构造函数注入(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

java - MVP 与 CDI;避免循环依赖

我尝试使用MVP范例构建Web应用程序。因为我希望API干净并使所有内容都易于测试,所以我尝试通过ContructorInjection注入(inject)所有可能的内容。现在我到了一个有多个文本字段的View的地步。当数据库中有值时,演示者会填充这些文本字段,因此我的演示者需要View的引用,但vie显然也需要演示者的引用。CDI告诉我,将Presenter注入(inject)到View中是不可能的,因为存在循环依赖性。是否可以避免通过setter方法在View中设置演示者?代码看起来像这样:查看:publicClassViewImplimplementsview{privatePr

java - CDI 对象不能用注入(inject)的构造函数代理

当尝试将参数注入(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

java - 将 weld-se 与 Gradle 应用程序插件一起使用时的 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

java - 如何使用 Weld 轻松注入(inject)字符串常量?

我们有一种情况,我们以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”)并且我知道该