Java™ EE 6은
이 릴리스에서 지원하는 새 기능 또는 향상된 기능을 다수 지원합니다.
웹 서비스
- 웹 서비스는 XML 웹 서비스 클라이언트 애플리케이션 작성을 위한 지원을
제공합니다.
- 단순 어노테이션과 함께 .NET 상호 운용 가능 웹 서비스로 API를 노출합니다.
- Java SE 6은 이전에는 Java EE 플랫폼 구현 또는
Java 웹 서비스 팩에서만 사용할 수 있던 새 구문 분석 및 XML을 Java 오브젝트 맵핑
API에 추가합니다.
JDBC 개선사항
- Java SE 6 개발 킷에는 모든 Java JDBC 데이터베이스인 Apache Derby 기반
Java DB가 포함됩니다.
- JDBC에는 SQL 데이터 유형으로 XML에 대한 특수 지원과 BLOB(Binary Large OBject) 및
CLOB(Character Large OBject)의 보다 나은 통합을 비롯한 다수의 중요한 개선사항이 포함된
업데이트된 JDBC 4.0 API가 포함됩니다.
- Java 6에서는 더 이상 JDBC 클래스를 명시적으로
로드할 필요가 없습니다. Class.forName("oracle.jdbc.driver.OracleDriver") 행이
단순 선언 Connection conn
= DriverManager.getConnection("jdbc:derby:TestDB");로 대체되었습니다.
모니터링 및 관리
- Java EE 6에서는 Java 모니터링 및 관리 콘솔(JConsole)이 개선되었습니다.
- JConsole의 그래픽 모양도 개선되었습니다. 이제 동일한 JConsole 인스턴스에서 여러 애플리케이션을
모니터할 수 있으며, 요약 화면도 다시 디자인되었습니다.
- Java 6에서는 Java 6 가상 머신에서 실행 중인
애플리케이션을 모니터할 수 있습니다.
- Java 6은 정교해진 스레드 관리 및 모니터링 기능도 제공합니다.
- OutOfMemoryError는 문제 발생 원인을 추측해볼 수 있도록
전체 스택 추적을 인쇄하여 제공합니다.
파일 시스템 관리
- Java 6에서는 로컬 파일 시스템에 대한 제어 기능이
크게 개선되었습니다.
- java.io.File 클래스에는 다음과 같이 주어진 디스크 파티션에서 사용할 수 있는
공간(바이트)을 판별하기 위한 세 가지 방법이 있습니다.
- java.io.File 클래스에는 이제 로컬 파일 시스템에서 읽기, 쓰기 및 실행 가능한 플래그를
설정할 수 있는 기능 세트가 있습니다(Unix chmod 명령으로도 가능).
보안
- 디지털 서명을 작성 및 조작하기 위한 XML-DSIG(XML-Digital Signature) API가
지원됩니다. 또한 다음과 같은 플랫폼 기반 보안 서비스에 액세스할 수 있는
다양한 새 방법이 추가되었습니다.
- 보안 인증 및 통신을 위한 Microsoft Windows의
기본 PKI(Public Key Infrastructure) 및 암호 서비스.
- Java GSS(Java Generic Security Services) 및 인증을 위한 Kerberos 서비스.
- 사용자 인증을 위한 LDAP 서버 액세스.
Java EE
6 API의 변경사항
WebBeans 1.0: Java
EE 6에서 개발된 가장 획기적인 API 중 하나로 WebBean이
Java EE에 있는 많은 갭을 채웁니다.
WebBeans는 다음을 수행합니다.
- JSF, JPA 및 EJB 3 프로그래밍 모델을 잘 통합된 단일 플랫폼으로 통합합니다. WebBeans는 EJB 3 Bean,
JPA 항목 및 JavaBeans를 WebBeans 컴포넌트로 등록하며, 이는 EL을 통해 액세스 가능하고
서로 인젝션 가능합니다.
- 강력한 종속성 인젝션 기능 세트를 플랫폼에 제공합니다.
- 인터셉터를 대상 오브젝트 클래스 자체에 바인딩하는 대신 인터셉터를 어노테이션에
바인딩하는 기능을 추가함으로써 Java EE 인터셉터 모델을 개선합니다.
EJB 3.1: EJB
3.1은 의미있는 비즈니스 컴포넌트 서비스를 추가하는 한편 계속해서 최대한
단순하게 EJB를 작성했습니다. EJB 3.1
- 비즈니스 인터페이스를 선택 가능하게 만들었습니다(세션 Bean도 포함).
- 싱글톤 Bean의 개념을 추가합니다. 이러한 Bean이 공유 애플리케이션 상태를 관리하기 위한
용도이므로 기본적으로 완벽히 스레드가 안전합니다. 동시에 EJB 3.1은 훨씬 나은 유연성을 위해
선언적인 동시성 제어를 추가합니다.
- 크론 스타일 스케줄을 위한 지원을 추가합니다.
- @Asynchronous 어노테이션을 통해 비동기로 세션 Bean 메소드를 호출하는 기능을
추가합니다.
- 웹 프로파일에 맞춰진 EJB API의 더 작은 서브세트를 추가하기 위해
EJB 3.1 Lite의 개념을 소개합니다. EJB Lite에는 트랜잭션 및 보안 같은 기능이
포함되어 있지만 메시징, 원격 지정, 스케줄링 같은 기능은 포함되어 있지 않습니다.
- 표준 JNDI 이름(java:global/app/module/beah#interface)을 소개합니다.
JPA 2.0: Java EE
6에서 JPA는 고유 API로 EJB와 공식적으로 구분되었습니다. JPA 2.0은 다음을 수행합니다.
- 콜렉션을 모델링하고 맵핑하고 @ElementCollection 어노테이션을 사용하여 나열하는 기능,
직접적이지 않은 일대다 관계를 맵핑하는 기능 같이 수많은 ORM 맵핑 개선사항을 추가합니다.
- 첫 번째 결과를 검색하고, 조회 결과의 최대 크기를 지정하고, 기본 벤더별 엔티티 관리자 및
조회 오브젝트에 대한 액세스와 비관적 잠금을 가져오는 등의 작업을 지원하기 위해 EntityManager 및
Query API를 둘 다 개선합니다.
- SQL-like CASE, NULLIF, COALESCE로 JPQL을 개선했습니다.
- Criteria API를 추가합니다.
Servlet 3.0: Servlet 3.0은 Java EE 5 모델을 수용합니다. 서블릿 3.0
- @WebServlet, @WebFilter 및 @WebListener 등의 어노테이션을 소개합니다.
이를 통해 web.xml 구성이 거의 필요하지 않게 되었습니다.
- 웹 단편의 개념을 소개합니다. 자세한 정보는 웹 단편 프로젝트 작성의 내용을 참조하십시오.
- ServletContext를 통해 서블릿, 필터, 리스너를 프로그래밍 방식으로 추가하는 기능을
추가합니다.
- EJB 3.1에 따라 선택적인 배치 디스크립터를 작성하도록 합니다.
- 웹 3.0 프로젝트에서 EJB 3.0 및 3.1 Bean에 대한 지원을 제공합니다.
JAX-RS 1.1: JAX-RS 1.1은 JAX-WS의 REST
상대입니다. JAX-RS 1.1은 다음을 수행합니다.
- @Path 어노테이션을 사용하여 JAX-RS 자원에 액세스할 수 있는 URL을 판별합니다.
- URL 조회 매개변수, URL의 파트, 쿠티 및 HTTP 헤더 값 같은 소스에서 입력을 맵핑합니다.
- text/xml 및 text/json 등 리턴된 값의 컨텐츠 유형을 JAX-RS에 알리도록 @Produces 어노테이션을 사용합니다.
- 서블릿, WebBeans 및 EJB와 통합합니다.