Java EE 란 정확히 무엇입니까?


162

나는 몇 년 동안 Java SE를 해왔으며 Java EE로 넘어 갔다. 그러나 Java EE의 일부 측면을 이해하는 데 어려움이 있습니다.

  1. Java EE는 단지 사양입니까? 내 말은 EJB EJB EE인가?

  2. EJB / Spring은 Java EE의 다른 구현입니까?

죄송하지만 Java EE가 무엇인지 이해하는 데 어려움이 있습니다.

누군가 Java EE가 무엇인지 설명 할 수 있습니까? 그리고 EJB?



2
이 질문을 두 가지 질문으로 잘라야합니다. 하나는 중복이며 다른 하나는 링크에서 대답하지 않습니다.
— Kheldar

2
실제로, [java-ee] 태그 위키 를 읽었 습니까?
— Paŭlo Ebermann


답변:


187

Java EE는 단지 사양입니까? 내 말은 EJB EJB EE인가?

Java EE는 실제로 추상 사양입니다. 누구나 사양을 개발하고 구현할 수 있습니다. 콘크리트 구현은 소위 애플리케이션 서버이며, 같은 제이보스 , TomEE , 글래스 피쉬 , 자유 , 웹 로직 등과 같은 거대한 자바 EE API 만 JSP / 서블릿 일부 구현 서블릿 컨테이너도있다 톰캣 , 부두가 , 기타

우리는 자바 EE 개발자, 코드 사양을 활용하여 작성해야 (예를 가져올 단지 javax.* 같은 구현 고유의 클래스 대신에 우리의 코드에 클래스를 org.jboss.wildfly.*, com.sun.glassfish.*등) 그리고 우리는에 따라서 어떤 구현 (우리의 코드를 실행할 수 있습니다 응용 프로그램 서버). JDBC에 익숙하다면 기본적으로 JDBC 드라이버 작동 방식과 동일한 개념입니다. ao 가장 간단한 용어로, 공장이란 무엇입니까?

자바 EE SDK 다운로드 Oracle.com에서 기본적으로 문서와 예제 및 선택적으로 또한 넷빈즈 IDE의 무리를 따라 글래스 피쉬 서버가 포함되어 있습니다. 다른 서버 및 / 또는 IDE를 원한다면 필요하지 않습니다.

EJB는 Java EE 사양의 일부입니다. 이봐, 그것은 자바 EE API에 있어요 . 본격적인 Java EE 애플리케이션 서버는 즉시 지원하지만 간단한 JSP / 서블릿 컨테이너는 지원하지 않습니다.

또한보십시오:


EJB / Spring은 Java EE의 다른 구현입니까?

아니요, EJB는 Java EE의 일부입니다. Spring은 Java EE의 많은 부분을 대체하고 개선하는 독립형 프레임 워크입니다. Spring은 반드시 Java EE를 실행할 필요는 없습니다. Tomcat과 같은 베어 본 서블릿 컨테이너는 이미 충분합니다. 간단히 말해서 Spring은 Java EE의 경쟁자입니다. 예를 들어 "Spring"(독립형)은 EJB / JTA와 경쟁하고, Spring MVC는 JSF / JAX-RS와 경쟁하고, Spring DI / IoC / AOP는 CDI와 경쟁하고, Spring Security는 JAAS / JASPIC과 경쟁합니다.

이전 J2EE / EJB2 시간 동안 EJB2 API는 구현 및 유지 관리가 끔찍했습니다. Spring은 EJB2에 대한 훨씬 더 나은 대안이었습니다. 그러나 EJB3 (Java EE 5) 이후 EJB API는 Spring에서 배운 교훈을 바탕으로 훨씬 향상되었습니다. CDI (Java EE 6) 이후 개발자가 다른 서비스 계층을보다 쉽게 ​​개발할 수 있도록 Spring과 같은 다른 프레임 워크 를 다시 살펴볼 이유가 없습니다 .

Tomcat과 같은 베어 본 서블릿 컨테이너를 사용하고 Java EE 서버로 이동할 수없는 경우에만 Spring은 Tomcat에 Spring을 설치하기가 더 쉬워서 더 매력적입니다. 서버 자체를 수정하지 않고 Tomcat에 EJB 컨테이너를 설치할 수는 없습니다. 기본적으로 TomEE를 재창조하는 것입니다.

또한보십시오:


2
그렇다면 Java EE는 일반적인 JEE 응용 프로그램을 실행하기 위해 어떤 지원이 존재해야하는지 정의한다고 말할 수 있습니까?
— James P.

4
@ 제임스 : 예. Java EE API의 대부분은 추상적입니다. Java SE API에는 JDBC, JAXP, JAXB 등 여러 가지 추상적 인 부분도 있습니다.
— BalusC

3
"개발자를보다 쉽게 ​​만들기 위해 Spring과 같은 다른 프레임 워크를 다시 살펴볼 이유가 없다"고 그는 덧붙였다. -> 정말 귀중한 정보.
— jacktrades

@BalusC : 안녕하세요, 공식 Sun Java EE .... 링크가 끊어졌습니다. 비슷한 링크를 제공하면 누군가에게 도움이됩니다.
— Abdul Rahman

완전한 Spring 프레임 워크를 실행하려면 서블릿 컨테이너로 충분합니다. 서블릿 컨테이너는 [웹 서버 + 웹 컨테이너 (구현 서블릿 API)]이며 Java EE를 실행하려면 Glassfish와 같은 응용 프로그램 서버가 필요합니다. 서블릿 컨테이너로는 충분하지 않습니다. 서블릿 컨테이너는 응용 프로그램 서버의 하위 집합입니다. 이것을 어떻게 이해합니까?
— overexchange

11

Java EE (Java Enterprise Edition)는 여러 가지 더 자세한 사양을 참조하는 포괄적 인 사양으로, EJB (Enterprise JavaBeans)가 더 중요한 사양 중 하나입니다.

이것을 읽으십시오 -Java EE와 Spring의 차이점을 설명합니다.

감사...


4
  • 소스 -Java 2 Platform, Enterprise Edition (J2EE)은 구성 요소 기반 멀티 티어 엔터프라이즈 응용 프로그램 개발을위한 표준을 정의합니다. J2EE는 이식 가능하고 확장 가능하며 레거시 애플리케이션 및 데이터와 쉽게 통합되는 엔터프라이즈 애플리케이션 구축을 단순화합니다.

  • 소스 -EJB (Enterprise JavaBeans) 기술은 Java EE (Java Platform, Enterprise Edition)의 서버 측 구성 요소 아키텍처입니다. EJB 기술을 사용하면 Java 기술을 기반으로하는 분산 트랜잭션 보안 및 휴대용 응용 프로그램을 빠르고 간단하게 개발할 수 있습니다.

  • Java EE는 단지 사양입니까? 내 말은 EJB EJB EE인가?

    • Java EE는 사양입니다.

    • EJB는 Java EE를위한 서버 측 컴포넌트 아키텍처입니다

  • EJB / Spring은 Java EE의 다른 구현입니까?

    • EJB와 Spring은 모두 Java EE에 따라 다른 프레임 워크입니다.

6
고대 버전의 사양 (J2EE)에서 고대 텍스트 (2005)를 인용하는 것은 그리 유용하지 않을 수 있습니다. OP는 특히 현대 J2EE의 화신 인 Java EE를 요청했습니다.
— Arjan Tijms

-5

간단히 말해 JavaEE는 플랫폼입니다.

API 인 많은 사양으로 구성되어 있습니다. 이러한 API의 구체적인 구현은 소위 '참조 구현'입니다.

  1. EJB는 JavaEE 플랫폼 내에서 하나의 사양 일뿐입니다
  2. 아니요, Spring은 JavaEE 애플리케이션 개발을 지원 / 지원할 수있는 애플리케이션 프레임 워크입니다.

EJB는 Enterprise Java Beans입니다


4
이 답변은 이전 답변에 아무것도 추가하지 않습니다. 또한 정확하지 않습니다. 구체적인 구현은 하나만 참조이고 나머지는 그렇지 않습니다. 사소한 일 : Spring은 JavaEE와 통합되지만 아무 문제없이 작동 할 수 있습니다.
— Tair

@tair 예, 1 개의 구체적인 구현은 '참조'로 간주됩니다. 예를 들어 JPA에는 많은 구현이 있지만 EclipseLink 만 RI입니다. RI를 언급했을 때 다른 API에서 의미가있었습니다. 나는 당신이 위의 내 대답을 오해했다고 생각합니다. 또한 Spring은 위에서 언급 한 JavaEE와 통합됩니다.
— SoftwareDeveloper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.