Java EE: Overview

Using the Java™ Platform, Enterprise Edition (Java EE) architecture, you can build distributed web and enterprise applications. This architecture helps you focus on presentation and application issues, rather than on systems issues.

You can use the Java EE tools and features to create applications that are structured around modules with different purposes, such as web sites and Enterprise Java bean (EJB) applications. When you use EJB 3.2 components, you can create a distributed, secure application with transactional support. When you develop applications that access persistent data, you can use the Java Persistence API (JPA). This standard simplifies the creation and use of persistent entities. For developing presentation logic, you can use technologies such as JavaServer Pages (JSP) or JavaServer Faces (JSF).

Using the Java EE Platform Enterprise Edition (Java EE), you can develop applications more quickly and conveniently than in previous versions. Java EE significantly enhances ease of use providing these improvements:
  • Reduced development time
  • Reduced application complexity
  • Improved application performance
Java EE provides a simplified programming model, including the following tools:
  • Inline configuration with annotations, making deployment descriptors now optional
  • Dependency injection, hiding resource creation, and lookup from application code
  • Java persistence API (JPA) allows data management without explicit SQL or JDBC
  • Use of plain old Java objects (POJOs) for Enterprise Java beans and web services
Java EE provides simplified packaging rules for enterprise applications:
  • Web applications use .WAR files
  • Resource adapters use RAR files
  • Enterprise applications use .EAR files
  • The lib directory contains shared .JAR files
  • A .JAR file can be specified in the application.xml of the EAR either as an application client or as an EJB module
  • A .JAR file that is not specified by the application.xml of the EAR is defined as follows:
    • A .JAR file with an application-client.xml implies an application client
    • A .JAR file with an ejb-jar.xml implies an EJB module
    • A .JAR file with META-INF/MANIFEST.MF specified Main-Class implies an application client
    • A .JAR file with any @Stateless, @Stateful, or @MessageDriven annotations implies an EJB application
  • A .JAR file with Main-Class implies an application client
  • A .JAR file with @Stateless annotation implies an EJB application
  • Many simple applications no longer require deployment descriptors, these include:
    • EJB applications (.JAR files)
    • Web applications that use JSP technology only
    • Application clients
    • Enterprise applications (.EAR files)
Java EE provides simplified resource access by using dependency injection:
  • In the Dependency Injection pattern, an external entity automatically supplies an object's dependencies.
    • The object does not need to request these resources explicitly
  • In Java EE, dependency injection can be applied to all resources that a component needs
    • Creation and lookup of resources are hidden from application code
  • Dependency injection can be applied throughout Java EE technology:
    • EJB containers
    • Web containers
    • Clients
    • Web services