cdi相关内容
我遇到一个问题,CDI注入到JBoss 7.1.1中的Weld容器中 我有以下对象模型: @Stateless class ServiceEjb { @Inject A a; } class A { @Inject B b; } class B { @Inject A a; } 当尝试在我的无状态类中注入A或B时,注入循环
..
当我使用CDI时,我可以使用 @Produces 注释,以创建一个要调用的生成器方法,以选择实现接口的bean将由 @Inject 注释。 现在我正在使用Spring,但是我没有找到任何类似的东西。当我使用 @Autowired @Produces 注释相同的结果>注释? 解决方案 您正在寻找 @Bean : @Bean是XML元素的方法级注释和直接模拟。注释支持大多数提供的属
..
我是一个Java EE新手。我想测试JSF,因此做了一个简单的程序,但是不能部署它。我收到以下错误消息: 不能部署onlineshop-war 部署失败=部署期间发生错误:异常在加载应用程序时:CDI部署失败:WELD-001408:注入点的限定符@Default 的不符合依赖关系[BackedAnnotatedField] @Inject private de.java2enterpr
..
现在,DI和AOP是CDI的标准规范。 如果不支持相关标准,任何好的产品都不能再保持良好状态。 (例如,Hibernate支持JPA规范) 我的问题是,Spring会在将来的版本中支持标准规范(CDI)吗? 解决方案 即使Spring是开源的,由一个大社区使用和支持,其未来的发展由一家公司控制spring source / vmware)。因此,它的决定本质上是非公开的,并且肯
..
我想创建一个Spring的bean生成器方法,它知道谁调用了它,所以我从以下代码开始: @Configuration public class LoggerProvider { @Bean @Scope(“prototype”) public Logger produceLogger(){ / /知道WHAT bean / component调用这个生产者 Class
..
JSR-299规范在§3.1中规定: 如果托管bean类是通用类型,则它必须具有范围 @独立如果具有参数化bean类的托管bean声明 除@Dependent之外的任何范围,容器将自动检测到 的问题,并将其视为定义错误。 有效地意味着你不能这样做: @Named @SessionScoped或@RequestScoped或类似的 public class MyPro
..
对于 @Named CDI bean,没有额外的 @ ... Scoped 注释有任何默认的作用域?我没有在官方Weld文档中找到任何相关信息。 可以通过JSF访问一个 @Named bean,而不需要额外的注释,所以一些隐含的范围似乎很可能。 谢谢 解决方案 默认范围是依赖伪范围 @Dependent ,如焊接文档: CDI具有所谓的相关伪作用域。这是一个未明确声明范围
..
我在Java EE / JSF中是新的,现在阅读有关CDI限定符 - 改变类实现的可能性。这是伟大的,但我有一个问题。据我所知,我可以使用限定符改变类实现,但是我需要使用这个实现来改变它。在一个地方做最好的解决方案是什么?关于Java EE的小知识,我想出了这个。 让我们想象一下,我们正在创建简单的Calculator应用程序。我们需要创建几个课程: 计算器(计算器的基本实现) / l
..
可以配置Spring的 @Atoto ,使得如果没有找到匹配的autowire候选项,Spring不会抛出错误: @Autowire(required = false ) 是否有等效的JSR-330注释? @Inject 如果没有匹配的候选人,总是失败。有没有什么办法可以使用 @Inject ,但是如果找不到匹配的类型,那么框架是否会失败?我没有找到任何文件。 解决方案 否...没有
..
如何以编程方式将Java CDI 1.1+托管的bean注入静态方法中的局部变量? 解决方案 注入一个类 C 的实例: javax.enterprise.inject。 spi.CDI.current()。select(C.class).get() 在CDI 1.1 +
..
首先,我应该澄清一点,这篇文章并不是为了批评CDI,而是发现CDI设计背后的思考和假设,这将对设计任何使用Web应用程序的Web应用程序产生明显的影响CDI。 CDI(Java EE 6)最为显着的功能之一是类型安全。 Jboss Seam在类型上不安全。它使用名称来限定要注入的任何实例。如下: @Name(“myBean”) public class MyBean实现Bean {
..
我在这里找不到任何合理的答案,所以我希望它不是重复的。那么为什么我更喜欢setter或者构造函数注入简单的 @Inject MyBean bean; 如果您在类初始化期间需要使用注入的bean来处理构造函数注入的使用像 public void MyBean(@Inject OtherBean bean){ doSomeInit(bean); //我不需
..
@Inject 和 @Resource 和 @Autowired 注释? 我们什么时候应该使用它们? 解决方案 @Inject与@Autowire与@Resource之间的区别? @Autowired:弹簧适当注释(而不是@Inject和@Resource),通过类型注入资源,即由注释字段或承包商的接口的类。如果我们几乎没有实现接口或子类,我们可以使用@Qualifier注释来
..
我写了一个转换器。我正在使用CDI和注入并行。在这种情况下,类不会被注入。如何使注射成为可能? @FacesConverter(forClass = MyClass.class) public MyConverter类实现转换器{ @EJB private ClassForEJB classForEJB; @Inject private ClassForInje
..
我正在将应用程序迁移到Java EE 7,并希望CDI 1.1。但是我没有得到 bean-discovery-mode =“annotated”的含义。 CDI 1.1规范不是很有帮助。至少我没有找到任何有用的段落。我想念了吗? 这个例子使用 bean-discovery-mode =“all”完美运行,并注入实例 LoggingClass : public class Loggi
..
在受管Bean中, @PostConstruct 通过bean初始化,而不是常规构造函数本身? 解决方案因为当构造函数被调用时,bean还没有被初始化 - 即没有注入依赖关系。在 @PostConstruct 方法中,bean被完全初始化,您可以使用依赖关系。 因为是确保在Bean生命周期中仅调用此方法一次的合同。它可能发生(尽管不太可能),bean在其内部工作中被容器多次实例化,但它
..
我试图使用PrimeFaces中的 ChartBean 示例。这是视图:
..
我有一个会话作用域bean: @Named @SessionScoped public class SessionBean implements Serializable { private String someProperty; public String getSomeProperty(){ return someProperty; } }
..
在我的项目中,我使用 Seam 3 ,并且我注意到 EntityManager c> @Inject 注释。我确定有一些配置,以确保 EnityManager 知道使用 PersistenceUnit 。例如, EJB 可以输入: @PersistenceContext(unitName = “MY_PERSISTENCE_UNIT_NAME”) private EntityManage
..
我需要写一个bean作为访问次数的计数器。 我想使用 @ApplicationScoped 豆类与 AtomicInteger 一样 @ApplicationScoped class VisitsCounter { 私有AtomicInteger计数器; @PostConstruct public void construct(){ counter = new
..