라이브러리가 애플리케이션 서버 환경 외부에서 작동하지 않는 이유는 무엇입니까?
실제로 그들은 할 수 있습니다. 대부분의 라이브러리는 독립적으로 (Java SE에서) 직접 사용하거나 .war (실제로 거의 항상 Tomcat 임)에 포함될 수 있습니다. JPA와 같은 Java EE의 일부에는 Java SE에서 작동하고 사용하는 방법을 알려주는 명시적인 섹션이 각 사양에 있습니다.
중요한 것은 애플리케이션 서버 환경 자체가 아니라 다른 모든 라이브러리와이를 통합하는 통합 코드의 존재입니다.
이 때문에 주석은 모든 라이브러리 (EJB, JPA 등)가이 스캔을 계속해서 수행하는 대신 모든 클래스에 대해 한 번만 스캔됩니다. 또한 CDI 어노테이션을 EJB 빈에 적용 할 수 있고 JPA 엔티티 관리자를 주입 할 수 있습니다.
이메일을 보내기 위해 간단한 코드를 컴파일하기 위해 JBoss처럼 거대한 것이 필요한 이유는 무엇입니까?
이 질문에는 몇 가지 잘못된 점이 있습니다.
- 컴파일을 위해서는 웹 프로필의 경우 1MB 미만이고 전체 프로필의 경우 1MB가 약간 넘는 API jar 만 필요합니다.
- 실행을 위해서는 분명히 구현이 필요하지만 "거대한"것은 과장된 것입니다. 예를 들어 OpenJDK는 약 75MB이고 TomEE (메일 지원을 포함하는 웹 프로필 구현)는 25MB에 불과합니다. GlassFish (전체 프로필 구현)도 53MB에 불과합니다.
- Mail은 독립형 mail.jar 및 activation.jar을 사용하여 Java SE (및 Tomcat)에서 완벽하게 작동합니다 .
Java EE 라이브러리가 "표준"이 아니며 일반 JVM 다운로드 및 / 또는 SDK에 포함 된 이유는 무엇입니까?
Java EE는 이미 방대한 JDK를 관리 및 다운로드하기 쉬운 청크로 분할하려는 첫 번째 시도 중 하나였습니다. 사람들은 이미 그래픽 클래스 (AWT, Swing) 및 애플릿이 헤드리스 서버에서 일부 명령을 실행하는 경우 JRE 내부에 있다고 불평하고 있습니다. 그리고 표준 JDK에 모든 Java EE 라이브러리를 포함하고 싶습니까?
모듈화 지원의 최종 릴리스와 함께 우리는 패키지로 개별적으로 설치할 수있는 많은 것들을 가진 작은 기본 JRE를 갖게 될 것입니다. 아마도 언젠가는 Java EE를 구성하는 많은 또는 심지어 모든 클래스도 그러한 패키지가 될 것입니다. 시간이 말해 줄거야.
표준 Java (Oracle JVM / SDK | OpenJDK JVM / JDK)의 두 가지 주요 특징 만 있는데 왜 그렇게 많은 Java EE 제품이 있습니까?
Java SE에는 두 가지 이상의 특징이 있습니다. 최소한 IBM JDK, 이전 BEA (JRocket, 인수로 인해 Oracle / Sun에 병합되는 JRocket), 다양한 기타 오픈 소스 구현 및 임베디드 사용을위한 수많은 구현이 있습니다.
Java SE 및 EE가 사양 인 이유는 많은 공급 업체와 조직이이를 구현할 수 있으므로 경쟁을 장려하고 공급 업체 종속 위험을 완화하기 때문입니다.
C 및 C ++ 컴파일러와 크게 다르지 않습니다. 경쟁 제품이 많고 모두 C ++ 표준을 준수합니다.
Java EE 라이브러리 버전이 표준 Java 라이브러리 릴리스 (Java EE 6 대 Java 7)와 동기화되지 않는 이유
Java EE는 Java SE를 기반으로하므로 뒤처집니다. 그러나 버전은 일치합니다. Java EE 5에는 Java SE 5가 필요합니다. Java EE 6에는 Java SE 6 등이 필요합니다. 대부분 Java SE X가 최신 버전 일 때 Java EE X-1이 최신 버전입니다.