Curso Java EJB 3.0 Programming
24 horasVisão Geral
Este Curso Java EJB 3.0 Programming oferece cobertura completa da tecnologia EJB3 – apresentada de maneira clara e eficaz. Ele começa com os conceitos básicos e APIs de EJB e continua com tópicos complexos, como beans e transações orientados a mensagens. Novos conceitos, como o uso de anotações e o uso de Injeção de Dependência para inicializar referências, são abordados em profundidade. O curso também inclui uma sólida introdução ao desenvolvimento de entidades persistentes usando a Java Persistence API (JPA). O curso usa laboratórios práticos e uma abordagem bem ritmada para tornar essa tecnologia complexa compreensível de forma acelerada. Você terá um entendimento abrangente do EJB e das questões importantes que precisam ser consideradas para usá-lo em aplicativos do mundo real. Oferecemos este curso usando o Glassfish ou JBoss IDE.
Este Curso Java EJB 3.0 Programming. Enterprise JavaBean abrange tópicos essenciais da tecnologia EJB3 desde conceitos básicos até os complexos. A especificação Enterprise JavaBeans 3.0 é uma revisão profunda da especificação EJB que visa melhorar a arquitetura EJB reduzindo sua complexidade do ponto de vista do desenvolvedor. Ele aproveita as tecnologias de anotações (introduzidas no Java 5) e mapeamento de objetos relacionais (ORM) para eliminar a dependência de APIs EJB complexas, permite o desenvolvimento baseado em POJO (Plain Old Java Object) e fornece uma tecnologia eficaz para criar componentes transacionais distribuídos, e para mapear dados relacionais para um esquema de objeto.
Publico Alvo
- Desenvolvedores Java que desejam utilizar EJB3.
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Java EJB 3.0 Overview
- What is EJB?
- EJB Goals
- Types of Enterprise JavaBeans
- Java Persistence API
- EJB and Java EE (Enterprise Editions)
- EJB in Java EE Architecture
- SOA and EJB
- SOA with Web Services and EJB
- EJB 3.0
- EJB 3.0 Overview
- EJB 2.X Problems
- EJB 3.0 Goals
Session Bean Usage
- Persistent Entity Usage
- MDB Usage
- Session Bean Overview
- What are Session Beans?
- Stateless Session Beans (SLSB)
- Stateful Session Beans (SFSB)
- Session Bean can be Distributed
- Defining a Session Bean
- Stateless Session Bean Definition
- Calculator Remote Business Interface
- Remote and Local Business Interface
- Calculator Bean Local Business Interface
- A Brief Note on Annotations
- How Annotations Work
- Annotation Definition
- Using Annotations
- What Else is Needed?
Packaging and Deployment
- J2EE Packaging
- EJB-JAR File
- Deployment Descriptor (DD)
- Deployment Descriptors in EJB 3
- EJB-JAR File Structure
- Enterprise Archive (EAR File)
- application.xml File
- Server Deployment
- EJB Container
- The EJB Container
- Server Deployment
JNDI Overview
- How do Remote Clients get EJB Access?
- JNDI – Java Naming and Directory Interface
- EJB Container Binds a Reference into JNDI
- Client Looks up Reference in JNDI
- JNDI Tree Structure
- JNDI API
- The Context Interface
- The InitialContext Class
- Specifying the InitialContext Properties
- Using JNDI
- EJB Client
- Client View of a Session Bean
- Client Invocation of a Session EJB
- PortableRemoteObject and Casting
- Running a Client
Dependency Injection
- Dependency Injection
- The JavaTunes Online Music Store
- An EJB Referencing Another EJB
- CatalogMaintenance
- Injection of CatalogMaintenance
- What is Happening
Deployment Descriptors
- More about Deployment Descriptors
- The XML Deployment Descriptor
The EJB Environment
- Issues with Obtaining Resources
- Referencing Resources External to EAR
- Reference and Deployment Descriptor Usage
- Resolving a JNDI Name
- Simple Environment Entries
- Declaring Simple Environment Entries
- Setter Injection
- Resource Manager Connection Factories
- More on the Enterprise Bean Environment
- The Environment is a Level of Indirection
- Looking up Resources in the Environment
- Looking up via EJBContext
- Looking up via JNDI API
- More on the @Stateless Annotation
- More on the @EJB Annotation
- More on the @Resource Annotation
- Deployment Descriptor vs Annotation
Stateless Session Bean Lifecycle and Interceptors
- Stateless Session Bean State Diagram
- Lifecycle of SSB
- Client Call of a Stateless SB Method
- Interceptors
- Business Method Interceptors
- InvocationContext Interface Details
- Interceptor Method Details
- Interceptor Class
- Using Interceptor Classes
- Method Level Interceptors
- Lifecycle Callback Interceptors
- Lifecycle Interceptor in the Bean Class
- Lifecycle Interceptor in a Separate Class
- Stateful Session Beans
- Stateful Session Bean (SFSB) Overview
- Coding a Stateful Session Bean
- Stateful Session Bean Clients
- Stateful Session Bean Removal
- Stateful Session Passivation/Activation
- When to Use Stateful Session Beans
- @PrePassivate and @PostActivate Callbacks
- Stateful Session Bean State Diagram
The Timer Service
- Bean Requirements
- The javax.ejb.Timer Interface
- The javax.ejb.TimerService Interface
- How the Timer Works
- Issues with Using the Timer Service
Overview of Messaging Systems
- What is Messaging?
- Loose Coupling
- When is Messaging Used?
- Two Messaging Models
- Publish/Subscribe – Illustrated
- More on Publish/Subscribe
- Point-to-Point – Illustrated
- More on Point-to-Point (P2P)
- Message Delivery – Push versus Pull
Overview of JMS API
- What is Java Message Service?
- API Structure
- JMS Interfaces
- Administered Objects
- Administered Objects and JNDI – Illustrated
- Client Workflow
- Synchronous Queue Consumer Client
- Asynchronous Queue Consumer Client
- JMS Message Types
- Message Header Fields
Message-Driven Beans
- J2EE Message Producers and Consumers
- Message-Driven Bean (MDB) Overview
- Goals of Message-Driven Beans
- MDB Consumption of a Message
- @MessageDriven Details
- Activation Configuration Properties
- Specifying a Destination for an MDB
- Specifying a Destination Using a DD
Message-Driven Bean Lifecycle
- Lifecycle Overview
- MDB State Diagram
- Interceptor Methods
Transaction Definition
- Transaction Overview
- Transaction Lifecycle
- Transactions Clarify Systems
Transactional System Overview
- Transactional System Components
- Transactional Object
- EJB Transaction Support
Transactions in EJB
- EJB Declarative Transaction Management
- Transactional Scope
- Specifying Transaction Attributes
- NOTSUPPORTED
- SUPPORTS
- REQUIRED
- REQUIRESNEW
- MANDATORY
- NEVER
- Beans Have a Say in Transactions
- Beans can be Notified of Transaction Status
- Transaction Attributes – Some Choices
- Explicit/Bean-Managed Transactions
- Transaction Isolation Levels
- Multi-Process TX and Two Phase Commit
Security in EJB
- Security Requirements
- J2EE Security
- Roles
- J2EE Security Overview
- EJB Security Overview
- Authentication
- Programmatic Security
- Transport Level Security with SSL
Exception Handling
- Exception Hierarchy
- Application Exceptions in EJB
- Defining Application Exceptions
- Container Handling of Application Exception
- Bean Throwing of Application Exception
- Client Handling of Application Exceptions
- System Exceptions Indicate Failure
- Container Handling of System Exception
- Client Handling of System Exceptions
EJB 3 Best Practices
- When to Use EJB
- Keep Business Interfaces Coarse Grained
- Session Façade Structure
- Use Container-Managed Transactions
- Transaction Duration
- Local and Remote Business Interface
- Tuning
- Session Bean Tuning
- Clustering
- Clustering Session Beans
JPA Overview
- The Issues with Persistence Layers
- Object-Relational Mapping (ORM) Issues
- Issues with JDBC Alone
- Java Persistence API Overview
- JPA Benefits
- Java Persistence Environments
Mapping a Simple Class
- Entity Classes
- Entity Class Requirements
- The Entity Declaration
- The Event Class
- The Id Property
- Filed Access or Property Access
- The EVENTS Table
- Generated Id Property
- Mapping Properties
- Basic Mapping Types
- Persisting to the Database
Entity Manager and Persistence Context
- The Entity Manager and Persistence Context
- The EntityManager
- The EntityManager Interface
- Persistence Unit
- Injecting an EntityManager
- Retrieving Persistent Objects
- Container-Managed Entity Manager
- The Persistence Unit
- persistence.xml
Inserting and Updating
- Transient, Persistent, Detached Instances
- Removed Instances
- Persisting a New Entity
- Synchronization to the Database
- Updating a Persistent Instance
Querying and Java Persistence Query Language (JPQL)
- Java Persistence Query Language
- Executing a Query
- Where Clause
- Query Parameters
- Using Query Parameters
- Named Queries
Mapping Relationships
- Object Relationships
- Mappings Overview
- Unidirectional Many-To-One Relationship
- The Table Structure – Many-To-One
- The Owning Side
- @JoinColumn
- Bidirectional One-To-Many Relationship
- Mapping the One-To-Many Relationship
- Using the Relationship
- More on the Inverse Side
- Other Types of Relationships
- Lazy and Eager Loading
- Cascading Operations
- Queries Across Relationships
Mapping Inheritance
- Entity Inheritance
- Details of Entity Inheritance
- Joined (Table per Subclass)
- Entity Definitions for Joined
- Joined: Pros and Cons
- Single Table Mapping Strategy
- Table per Concrete Class
Versioning
- Optimistic Locking / Detached Instances
- Versioning
More on Querying
- Projection Queries
- Aggregate Queries
- Bulk Update and Delete
- Native SQL Queries
Embedded Objects
- Using Embedded Objects
- Embeddable Class
Java Persistence with Java SE
- Using JPA with Java SE
- Java SE APIs