Java EE 包命名约定是什么?

Whats the Java EE package naming convention?

我一直在努力更好地理解哪些功能属于 Java EE 规范,哪些是我正在开发的新应用程序的标准 java 功能,并且我注意到包结构似乎有点混乱。

举个例子,拿包来说:

import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

这两个都是企业功能,但只有一个通过存在于 enterprise 包中使其显而易见。

在 Java EE API 规范 here 中,我注意到 enterprise 包中只有一些功能。

我的猜测是某些软件包在 Java 的 EE 版本之前就已存在,因此它们保留了向后兼容的结构?仍然.. 这一切似乎有点奇怪。

JavaEE 堆栈中的某些 API 并非特定于 JavaEE,也可用于 JavaSE。例如,您在问题 javax.inject.Named 中提供依赖注入的 CDI 也可以在 JavaSE 应用程序中使用。