java - 在抽象基类中接缝@Factory?

标签 java inheritance seam abstract-class factory

我在 Seam 中实现了一系列 Web 操作来执行创建、读取、更新等操作。对于我的读取/更新/删除操作,我希望拥有全部扩展抽象基类的单独操作类。我想将 @Factory 方法放在抽象基类中以检索要执行操作的项目。例如,我将其作为基类:

public abstract class BaseAction {

   @In(required=false)@Out(required=false)
   private MyItem item=null;

   public MyItem getItem(){...}

   public void setItem(...){...}

   @Factory("item")
   public void initItem(){...}
}

我的子类将扩展 BaseAction,这样我就不必重复加载要查看、删除、更新等的项目的逻辑。但是,当我启动应用程序时,Seam 会抛出错误,说我有为同一个对象声明了多个@Factory。

有什么办法可以解决这个问题吗?有没有办法在基类中提供 @Factory 而不会遇到这些错误?

最佳答案

您遇到的问题是每个 Seam 组件都需要一个唯一的名称 - 使用您的方法,您将为每个子类提供一个名为“item”的组件。

我会执行以下操作:

@Name( "action1" )
public class Action1 extends BaseAction
{
  ...
}

在 Components.xml 中:

<factory name="action1Item" value="#{action1.item}" />

关于java - 在抽象基类中接缝@Factory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3063950/

相关文章:

java - 如何从 JPAspersistence.xml 中外部化属性?

java - 在 JBoss 7 Java EE 项目中使用 iText

java - 哈希字符串的字节转换,java 与 python

java - 使用字符索引 HashMap 时出现 NullPointerException

C++ 继承,检索子数据成员

CSS 继承被破坏?

seam - 在 JSF、Weld 或 Solder 中使用 CDI

java - d * e mod phi == 1 对于 RSA key 对并不总是正确

java - 如何在java类中声明整数列表对象

Python:__init__ 中的继承和默认值