Course Content
Overview
- Enterprise Applications
- Containers and Objects
- Three Containers
- Remote Connectivity
- Scalability and Availability
- Security
- Transaction Control
Architecture
- What is an EJB?
- Types of Beans
- Inversion of Control
- The Bean-Type Annotations
- Dependency Injection
- The @EJB Annotation
- Development Cycle and Roles
Session Beans
- Interface/Implementation Split
- Stateful vs. Stateless
- The @Stateless Annotation
- Lifecycle and State Transitions
- Session Context
- The @Stateful Annotation
- State Transitions
- Singletons and Pools
Entities
- The Java Persistence API
- Persistence Annotations
- Configuration by Exception
- ORM Annotations
- The EntityManager
- Acquiring and Using the EntityManager
- persistence.xml
- @Enumerated and @Temporal Types
Associations
- Associations, Cardinality, and Ownership
- Annotations
- Unidirectional vs. Bidirectional
- The @Embedded Annotation
Java Persistence Query Language
- OO Query Languages
- The FROM Clause and Directionality
- The WHERE Clause
- The SELECT Clause
- Joins
- Aggregates and Grouping
- Ordering
Dependency Injection
- Interdependent Systems
- The Factory Pattern
- The Service Locator Pattern
- Dependency Injection
- Injection by Magic?
- Injection by Type
- Injection by Name
- The Component Environment
- Deployment Descriptors
- Impact on Stateful Session Beans
- JNDI
- Connecting to a Remote Bean
- Using mappedName
- Who Can Declare Dependencies
Message-Driven Beans
- Asynchronous Messaging
- The Java Message Service
- Message-Driven Beans
- Message Types
- Injecting JMS Queues
Transactions
- ACID Transactions
- The EntityTransaction Interface
- EJB Transaction Attributes
- Persistence Contexts
- Extended Persistence Contexts
- Isolation Levels
- Application-Managed Persistence
- The SessionSynchronization Interface
- Impact on JMS and MDBs
Exception Handling
- Java Exceptions
- Remote Exceptions
- EJB Exception Handling
- System Exceptions
- Application Exceptions
- Transaction Control
Security
- Authentication and Authorization
- Declarative Authorization
- Abstract Roles
- Concrete Realms
- Programmatic Authorization
- Run-As Identity
Interceptors
- EJB and AOP
- The Intercepting Filter Pattern
- EJB Interceptors
- Annotating Interceptor Classes
- The InvocationContext Interface
- Binding Interceptors to Targets
- Shared Lifecycle and Context
- Interceptors and MDBs
Timers
- The EJB Timer Service
- The TimerService Interface
- The Timer Interface
- Timeout Methods
- Timer Handles
- Transactions and Timers