导入POJO和注入EJB有什么区别?

时间:2011-11-02 05:06:34

标签: java-ee servlets dependency-injection ejb-3.0 java-ee-6

当我试图在eclipse中创建一个Dynamic Web Project时,我在eclipse中收到一些通知,告诉我除了使用的@EJB依赖注入之外,我不仅要在构建中引用EJB,还要导入EJB包。 。

任何人都可以帮我澄清为什么这三个都需要以及究竟发生了什么。我问的原因是因为单独导入EJB包就足以将EJB类放在调用类的范围内,这表明我还没有清楚地了解JEE6试图通过注释实现什么。

编辑:澄清一下,这是关于EJB的一般性问题。它实际上工作我只是好奇为什么除了依赖注入之外还需要导入bean。看起来它们只是在另一个文件(servlet或bean等)中引用EJB类的两种方式,但我不认为这是因为必须有一些特定的原因,即通过导入包完成注入/ bean的类。

谢谢,

1 个答案:

答案 0 :(得分:1)

这听起来好像你误解了Java import关键字的含义。它不包括当前类中的类的源代码,如PHP的include(),CSS @import,JSP的<jsp:include>所做的或类似的东西。它不会在代码中注入任何内容。

当您在代码中使用非FQN类名时,import是必需的,这样编译器就能理解您正在引用的类。想象一下,除了当前包之外,您在多个不同的包中都有一个名为FooService的类;如果没有导入或显式FQN,编译器就不知道你指的是哪一个,因此如果代码功能正常(即该类已被正确使用并以正确的方式访问),则无法进行任何检查字段/方法名称和正确的方法参数等。)

如果您发现import关键字因某些非显而易见的原因而令人不安,那么您也可以通过FQN(完全限定名称,因此包括完整的包名称)来声明该类。 E.g:

@EJB
com.example.business.FooService fooService;

这样您就可以删除import com.example.business.FooService;行。

另见: