jjzjj

java - 用于 JavaEE 和 CDI 的 JDBCTemplate

我正在开发一个大量使用纯JDBC代码的JavaEE7/CDI项目。是否有一个库可以帮助我消除样板代码,就像JDBCTemplate为Spring所做的一样。显然,添加Spring作为依赖项不是一种选择。 最佳答案 我会建议Apachecommons-dbutils,这是一个用于JDBC操作的轻型库。它提供了与Spring的JDBCTemplate非常相似的QueryRunner类。 关于java-用于JavaEE和CDI的JDBCTemplate,我们在StackOverflow上找到一

jsf - @ManagedProperty 的 CDI 替换

我正在尝试将Richfaces4展示中的一些代码转换为使用CDI而不是JSF注释。我知道我可以使用@Named来替换@MangedBean和@Inject来替换@ManagedProperty.但是我遇到了一些麻烦。我正在尝试专门转换RichFacesTree示例。我做了以下更改,我知道这是不正确的,所以请不要使用它://@ManagedBean//@ViewScoped@Named@SessionScopedpublicclassTreeBeanimplementsSerializable{privatestaticfinallongserialVersionUID=1L;//@Ma

java - 以编程方式将 Bean 注入(inject) CDI 上下文?

是否可以手动将bean注入(inject)到CDI上下文中?使用JBossSeam框架,我总是可以执行类似Contexts.getConversationContext().set("foo",bar);这样的操作,Bean将成为该上下文的一部分。是否可以在JavaEE6CDI中执行类似的操作? 最佳答案 使用CDI,您必须稍微改变您对作用域bean的看法。在Seam2中,上下文只是保存在特定范围内的map,您可以访问这些map。在CDI中,容器获得了对上下文的控制权,并且只允许您在具体范围内声明bean,并且所有内容都在后台进行管

java - 什么时候应该使用 Instance<T> 和 Provider<T> 在 CDI 中注入(inject) bean?

我一直在阅读Instance的API文档和Provider,但尚不完全清楚何时应使用它们。以下方法之间有什么区别?@InjectMyBeanbean;@InjectInstancebean;@InjectProviderbean; 最佳答案 Provider是一个由CDI接口(interface)扩展的JSR-330接口(interface)Instance.注入(inject)MyBean,当没有匹配的bean或有多个匹配的bean时,您的应用程序将在启动期间抛出异常。注入(inject)Instance,bean解析委托(del

java - 在 ResourceContext initResource 创建的 JAX-RS 子资源实例中不可能进行 CDI 注入(inject)

我有一个JAX-RS资源类,它使用@ContextResourceContext为每个资源类型创建子资源实例,提供到子资源类的路径路由。在这个例子中,我正在实例化一个报告子资源。资源@ContextResourceContextrc;@Path("reports")publicReportsResourcereportsResource(){returnrc.initResource(newReportsResource());}子资源需要一个ReportService类的实例(用@Stateless注释定义),自然的解决方案是@Inject它...报告子资源@InjectReport

java - Java 事件,特别是 javax.enterprise.event.fire() 的行为如何?

我有以下情况(在JBossAS6和AS7上运行):具有预定方法的单例EJB。SomethingChangedEvent类型的注入(inject)事件考虑以下示例:@SingletonpublicfinalclassScheduler{@InjectprivateEventevent;@ScheduleprivatevoidscheduleSomething(){event.fire(newSomethingChangedEvent());}}我希望这个事件被添加到服务器上的某种队列中并由它分发。任何使用@Observers观察此类事件的方法都会收到通知。event.fire()方法将立

java - 处理 CDI 中的循环依赖

我有这样的情况。我看不到任何错误,但我没有得到结果。@ApplicationScopedpublicclassA{privateBb;@InjectpublicA(Bb){this.b=b;}}@SingletonpublicclassB{privateAa;@InjectpublicB(Aa){this.a=a;}}这种依赖注入(inject)是不是错了?谁能帮我解决这个问题。 最佳答案 我会避免这种循环依赖,这样做有几个原因。评论thisarticleAmessyconstructorisasign.Itwarnsmethatm

java - CDI部署失败:WELD-001414 Bean name is ambiguous

我有一个应用程序,它有多个模块和各种依赖项。当我在Glassfish4上部署应用程序时,出现错误:org.jboss.weld.exceptions.DeploymentException:WELD-001414Beannameisambiguous.NameJerseyClassAnalyzerresolvestobeans:[ManagedBean[classorg.glassfish.jersey.internal.inject.JerseyClassAnalyzer]withqualifiers[@Default@Named@Any],ManagedBean[classorg.

java - 焊接中外部(第 3 方)bean 的解析

我知道它还不是很流行,因为该规范是几个月前才发布的。我还没有“安装”焊接,我只是在阅读,通过这个问题我想确保我已经正确理解了这个重要的点:是通过将它们声明为来解决第3方jar中的bean的问题吗?在你的beans.xml?如果没有,如何使用没有beans.xml的第三方库中的bean?除非有beans.xml,否则将jar放在类路径中是行不通的在他们的META-INF,对于第3方jar,您无法做到这一点。(参见GavinKing'spostonthesubject) 最佳答案 为什么想的这么复杂?简单地为那些第3方类制作一个prod

java - 如何将内部类添加到 Spring 应用程序上下文以进行单元测试?

我有一个bean,其业务逻辑从ApplicationContext加载特定类型的bean以处理它们。对于我的jUnit测试,我想在我的单元测试类中创建一些虚拟bean并查看我的被测bean是否正确处理它们。但是,我不确定实现此目标的最佳方法是什么。如果我只是在我的测试类中声明我的内部类,Spring不会将它作为其应用程序上下文的一部分。我意识到我可以在我的jUnit类中注入(inject)我的应用程序上下文,然后使用appContext.registerPrototype()添加它,但是,我认为使用注释可能有更简洁的方法。我试过用@Component注解内部类,但毫不奇怪,它没有用。p