Tag: inject

@Dependent @ javax.ejb.Singleton与@ApplicationScoped @ javax.ejb.Singleton?

从本质上讲,这两个类之间有什么区别: @ApplicationScoped @Singleton class A {} @Dependent @Singleton class B {} 上下文EJB实例 在查找EJB时,我不想使用@Inject ,除非EJB是@Stateful ,我希望CDI容器管理有状态的生命周期,这可能非常方便。 否则,使用@Inject检索上下文EJB实例有点危险。 例如,除非我们也编写生产者,否则无法使用CDI检索@Remote客户端视图。 此外,A类和B类不能声明任何其他范围而不是它们目前的范围。 CDI 1.1 ,“3.2会话bean”部分说: 单例bean必须属于@ApplicationScoped范围或@Dependent伪范围。 如果会话bean指定了非法范围,容器会自动检测问题并将其视为定义错误。 因此,除了有状态bean之外,当我去寻找EJB时,我认为使用CDI毫无意义。 一个更成熟的问题版本 从客户端代码的角度来看,使用@Inject来声明对A或B的依赖,我无法想象存在差异。 在这两种情况下,调用都将路由到单例EJB。 如果我是CDI提供者的实现作者,那么我甚至可能在两种情况下注入真正的EJB代理并忽略将来要求销毁依赖CDI代理的调用? 底线是我们可以在EJB单例类上声明两个不同的范围。 那有什么区别?

Guice动态注入自定义注释

我有一些资源,但我不能迭代它并将它们全部绑定,我必须使用密钥来请求资源。所以,我必须动态注入。 我定义了一个注释 @Target({ METHOD, CONSTRUCTOR, FIELD }) @Retention(RUNTIME) @Documented @BindingAnnotation public @interface Res { String value();// the key of the resource } 像这样用 public class Test { @Inject @Res(“author.name”) String name; @Inject @Res(“author.age”) int age; @Inject @Res(“author.blog”) Uri blog; } 我必须处理由@Res注释的@Res ,我需要知道注入字段和注释。 这在Guice有可能吗? 即使有spi?

将Spring bean注入RestEasy

是否可以将Spring bean注入RestEasy @Path类? 我设法使用@InjectParam注释使用Jersey,但由于其他一些原因,我需要切换到RestEasy,我似乎无法找到一种方法(尝试好的”javax.inject.Inject,但没什么。 编辑 此解决方案有效: http : //www.mkyong.com/webservices/jax-rs/resteasy-spring-integration-example/ 但它不是注射..我仍然喜欢更优雅的东西。