接口,EJB和Servlet中的Javadoc

时间:2014-02-12 10:39:35

标签: java interface ejb javabeans javadoc

我开始使用Javadocs来记录我的Java代码,虽然我非常喜欢这个想法,但我遇到了一些麻烦。基本上有两个单独的项目,WEB项目,带有html页面和servlet,以及EJB项目,带有bean和接口。 Bean的界面像.jar简介WEB项目一样导出,因此servlet可以用JNDI查找并调用bean的方法。

问题:
1)为什么我不能在bean实现的接口中看到javadoc注释?例:

@Remote
public interface BeanRemote{
    //CAN'T SEE JAVADOC HERE
    public String tuna(String fish);
}

@Stateless
public class Bean implements BeanRemote{
    /**
    This is very nice function
    */
    public String tuna(String fish){
        return "this is"+fish;
    }
    public void printStuff(){
        //CAN SEE JAVADOC HERE
        String stuff = tuna("big tuna");
        System.out.println(stuff);
    }
}

2)是否有可能从WEB项目的servlet中看到javadoc注释,如果它有.jar的接口,而实际的javadoc注释在bean中?

提前致谢。

编辑:
两个项目的简化结构:
WEB:

webProject
  JavaResources
    src
      servlets
        //Can't see Javadoc here
        BeanServlet.java
  WebContent
    WEB-INF
      lib
        //This is interface on the bean from BEAN project
        BeanRemote.jar

BEAN:

beanProject
  ejbModule
    beans
      //Javadoc is here
      Bean.java
    remote
      //Can't see Javadoc here
      //This is exported into WEB project
      BeanRemote.java

1 个答案:

答案 0 :(得分:1)

由于您正在引用Web项目中的接口,因此您的Javadoc应放在接口方法中。

如果您的实现方法需要更具体的文档,您还可以从接口继承Javadoc并添加细节。只需在Javadoc块中使用{@inheritDoc}

示例:

/**
* {@inheritDoc}
* <p>
* For this specific implementation of the interface, you're better off
* calling the more efficient {@link foo} method, provided you have the
* additional arguments!
* </p>
*/
@Override
public void methodX() {
    // Your code here
}

请记住,只有在您明确引用此类时才会显示特定文档。

BeanRemote bean = new Bean();

当您将鼠标光标放在BeanRemote上时,它会显示来自BeanRemote的文档,而当您将其放在Bean上时,它会显示特定的文档。