EJB Training Overview
Introduction to EJB teaches attendees the skills they need to successfully develop all types of Enterprise JavaBeans, including session beans, entity beans, and message-driven beans. This course is taught using the EJB 3.0 framework.
EJB Training Prerequisites
All attendees should have a solid Java™ programming experience. Some experience with distributed systems development, especially object-based systems such as Java RMI, CORBA, or COM, is a plus. Some knowledge of JDBC is helpful in understanding the EJB persistence model. Understanding of XML is a plus but is not needed.
EJB Training Objectives
- Understand the role of EJB in the broader Java EE platform.
- Describe the features that are implemented by an EJB container on behalf of application components.
- Build stateless session beans as part of a service layer or SOA.
- Build JPA entities to represent persistent data records within the Java application.
- Develop systems of entities to manage complex data models including 1:1, 1:N, and N:N associations.
- Manage transactional behavior of the application through declarative and programmatic techniques.
- Invoke EJB sessions from Java web applications.
- Use dependency injection and JNDI names to assemble complex web/EJB systems with minimal fuss and maximal flexibility.
- Implement message-driven beans to process queued messages asynchronously.
EJB Training Outline
- Introduction
- Overview of EJB and Java Persistence API (JPA)
- Goals of EJB, EJB in the Java EE architecture
- EJB 3.0 Overview
- Session Beans, Persistent Entities, Message Driven Beans
- Session Beans
- Session Bean Overview
- Services provided, Stateless and Stateful Beans
- Defining a Session Bean - EJB 3 Annotations
- The Bean Implementation, Remote and Local Business Interface
- Packaging and Deployment
- ejb-jar file, Deployment Descriptors in EJB 3
- EAR file
- The EJB Container
- JNDI Overview
- Distributed Naming and Lookup
- Context and InitialContext
- Using JNDI
- Writing an EJB 3 Client
- Client View of a Session Bean
- PortableRemoteObject and Casting
- Running the Client
- Additional Capabilities
- Resources and Dependency Injection
- EJB referencing another EJB
- Referencing Resources, Environment Entries
- Connection Factories (DataSource and others)
- Session Bean Lifecycle and Interceptors
- Stateless Session Bean Lifecycle
- Business Method Interceptors, InvocationContext, Lifecycle Callback Interceptors, Interceptor Classes
- Stateful Session Beans
- Overview
- Defining, Client Relationship
- Lifecycle, Activation, Passivation
- Timer Service
- Overview and usage
- Message-Driven Beans
- Overview of Messaging Systems
- Messaging, Loose Coupling
- Pub/Sub, Point2Poin
- Overview of JMS API
- Overview and Structure
- ConnectionFactory and Destination
- JMS Producer and Consumer Client example
- JMS Messages
- Message-Driven Beans (MDB)
- Overview and Goals
- @MessageDriven and MDB example
- Configuring with activationConfig
- State Diagram and Interceptors
- Transactions and Security
- Overview of Transactions and Transactional Systems
- ACID, Tx Lifecycle, Tx Manager, Transactional Objects
- Transactions in EJB 3
- Declarative Transaction Management
- Transaction Attributes and Transactional Scope
- Transaction Scenarios and Bean-Managed Tx
- Security
- Java EE Security Overview (Role-based)
- @RolesAllowed, @PermitAll
- Programmatic Security
- Exceptions
- Exception Overview
- Checked and Unchecked Exceptions
- Exceptions in EJB 3
- Application Exceptions, System Exceptions
- EJB 3 Best Practices
- When to Use, Coarse-Grained Business Interfaces, Session Facade, Transaction Guidelines, Clusterin
- Introduction to Java Persistence API (JPA)
- Overview
- Persistence Layers, Object-Relational Mapping (ORM), JDBC
- JPA Overview
- Mapping with JPA
- Entities and @Entity, ids and @Id
- Generated Id Values
- Basic Mapping Types
- EntityManager
- Persisting to the DB, the EntityManager,
- Persistence Units and Configuration
- Injecting an EntityManager
- Retrieving Persistent Entities
- Updates and Queries
- Inserting and Updating
- Transient, Persistent, Detached, Removed
- Persisting new Entities, Updating a Persistent Instance
- Querying and JPQL
- Object Based Queries, Select statements, WHERE clause
- Named Queries
- Versioning and Optimistic Locking
- Detached Instances
- Versioning and Optimistic Locking in EJB 3
- Entity Relationships
- Relationships Overview
- Object Relationships, Participants, Roles, Directionality, Cardinality
- Relationship Mapping
- Mapping Overview (1-1, 1-N, N-1, N-N)
- Unidirectional and Bidirectional
- Mapping One-One, One-Many and Many-Many
- Join Columns
- Relationship Inverses
- Lazy and Eager Loading
- Cascading
- Queries Across Relationships (Inner Joins, Outer Joins, Fetch Joins)
- JPA
- Inheritance Mapping
- Entity Inheritance
- Single Table, Joined (Table per Subclass), Table per Concrete Class
- Pros and Cons
- Additional JPA Capabilities
- Queries - Projection, Aggregate, Bulk Update/Delete
- Embedded Objects
- EJB 3 and Java SE
- Best Practices
- Primary Keys, Named Queries, Lazy/Eager Loading, Transactional Semantics, Encapsulation, Report Queries
|