- Introducción y conceptos básicos de EJB3
- Lo nuevo en EJB 3
- Empleo de POJOs: código no invasivo
- Anotaciones en lugar de descriptores
- Simplificación del modelo de programación
- Inyección de dependencias
- Nuevo API simplificado de persistencia
- Definición de Enterprise Java Bean
- Entornos y Uso de un EJB
- EJBs como componentes
- EJBs como framework de capa de negocio
- EJBs en arquitecturas multicapa
- Beneficios de un EJB ¿donde emplearlos?
- El contenedor de EJBs
- Servidores de aplicaciones empresariales JEE
- Servicios que ofrece un contenedor EJB
- Tipos de EJBs
- Session Beans
- Características de un session Bean
- ¿Cuándo emplear un session bean?
- Programando un Session Bean en EJB 3
- Incorporando anotaciones
- Mezclando anotaciones con descriptor xml
- Incorporando inyeccion de dependencias
- Message Driven Beans (MDBs)
- Características de un MDB
- ¿Cuándo emplear un MDB?
- Programando un MDB en EJB 3
- Envio de mensajes a un MDB
- Entities y JPA
- Entities
- EntityManager
- JPA
- Persistiendo datos con JPA
- Uso de EntityManager
- Implementación de la Lógica de negocio con Session Beans
- Servicios de un Session Bean
- Tipos de Session Beans
- Stateless Session Beans
- Stateful Session Bean
- Acceso a EJBs a través de interfaces
- Clientes locales
- Clientes remotos
- Webservices como clientes
- Consideraciones acerca del paso de argumentos a los métodos de un EJB
- Elementos de un Session Bean
- Interface de negocio
- La clase que implementa al EJB
- Modelo y reglas de programación de un sesión bean
- Ciclo de vida de un Session Bean
- Ciclo de vida para un Stateless Session Bean
- Ciclo de vida para un Stateful Session Bean
- @PostConstruct
- @PreDestroy
- @PrePassivate
- @PostActivate
- Stateless session beans
- Uso de @Stateless
- Construcción de las interfaces de negocio
- Interface local @Local
- Interface remota @Remote
- Exponer un session bean como Web Service @WebService
- Stateful session beans
- Uso de @Stateful
- Reglas de programacion adicionales
- Pasivando y activando EJBs: @PrePassivate, @PostActivate
- Eliminación de un stateful bean
- Invocación de sesión Beans: clientes
- Inyección de dependencias empleando @EJB
- Consideraciones de desempeño para stateful session beans
- Alternativas a los stateful sesión beans
- Manejo de excepciones
- Mensajes e implementación de Message Driven Beans
- Conceptos básicos de mensajería
- Message-oriented middleware
- Conceptos básicos de JMS (Java Message Sevice) API
- Arquitectura de JMS
- JMS Producer
- JMS provider
- JMS clients
- Messages
- Modelos de mensajería
- Punto a punto
- Publish-subscribe
- Consumo de mensajes
- Modelo de programación de JMS
- Objetos Administrados
- JMS Connection Factories
- JMS Destinations
- JMS Connections
- JMS sessions
- JMS Message Producers
- JMS Message Consumers
- JMS Message Listeners
- Beneficios u utilidad de un MDB
- Modelo (reglas) de programación de un MDB
- El ciclo de vida de un MDB
- Programación de un consumidor de mensajes empleando un MDB
- Uso de @MessageDriven
- Envió de mensajes desde MDBs
- Mejores prácticas en el uso de MDBs
|
- Conceptos avanzados en EJB3
- El contenedor y la generación de Proxies
- El contexto de un EJB: EJBContext
- Acceso a recursos
- Empleando Dependency Injection
- Empleando JNDI
- Uso de @Resource
- Uso de @PersistenceContext
- Uso de @PersistenceUnit
- Inyección de recursos JMS
- Acceso a atributos de ambiente
- Interceptores en EJB 3
- Conceptos básicos de AOP
- Interceptores en EJB3 @Interceptors
- EJB timer service
- Transacciones
- Propiedades ACID
- Niveles de aislamiento
- Administración de transacciones
- Transaction manager
- Transacciones distribuidas
- Two Phace Commit
- Protocolo XA
- Administración de transacciones en EJBs
- Container Manager Transactions
- Uso de @TransactionManagement
- Interaccion con otras transacciones: @TransactionAttribute
- Atributos de interaccion:
• REQUIRED
• REQUIRES_NEW
• SUPPORTS
• MANDATORY
• NOT_SUPPORTED
• NEVER
- Provocando rollbacks con setRollbackOnly
- Manejo de excepciones dentro de transacciones
- Excepciones de sistema
- Excepciones de aplicación @ApplicationException
- Seguridad en JEE, EJB 3
- Autenticación y Autorización
- Usuarios, grupos y roles
- Uso de @DeclareRoles, @RollesAllowed, @PermitAll, @DenyAll, @RunAs
- Seguridad programática: isCallerInRole, getCallerPrincipal
- Spring y EJB 3
- Beneficios del framwerk de Spring
- El principio de “Inversion of control
- El principio de “separation of concerns”
- Empleo de JPA con Spring
- Combinar EJB3 y Spring
- Java Persistence API en EJB3
- Introducción al diseño orientado a modelos de dominio
- Objetos
- Relaciones entre objetos
- Multiplicidad
- Opcionalidad
- Implementación de objetos de dominio con JPA: @Entity
- Persistiendo entidades
- @Id, @IdClass,@EmbeddedId,@Transient, @Embeddable
- Relaciones unidireccionales y bidireccionales entre entidades
- @OneToOne
- @OneToMany
- @ManyToOne
- @ManyToMany
- Mapeo del modelo de dominio en la base de datos
- Mapeo de Entidades
- Mapeo de la tabla @Table, @Target
- Mapeando columnas @Column, @Enumerated, @Lob, @Basic
- Mapeo de tipos temporales @Temporal
- Mapeo a múltiples tablas @SecundaryTable
- Generación de llaves primarias
- Identity Columns
- Secuencias
- Mapeo de objetos marcados como embeddable
- Mapeo de relaciones entre entidades
- One to One @JoinColumn, @PrimaryKeyJoinColumn
- One to Many
- Many to Many
- Mapeo de Herencia @Inheritance
- Estrategias de mapeo
- Single – Table strategy : @DiscriminatorColumn
- Joined-tables strategy
- Table-per-class strategy
- Manipulación de Entidades con EntityManager
- Definición de EntityManager
- La interface EntityManager
- Ciclo de vida de una entidad
- Obtención de Instancias EntityManager
- Cointainer- Managed EntityManager
- Application-managed EntityManager
- Principales operaciones con EntityManager
- Persistencia de entidades con Persist
- Obtención de entidades por ID
- Entity fetch modes
- Actualización de entidades: merge
- Eliminar entidades
- JPA Query API: Java Persistence Query Language JPQL
- El objetivo fe JPQL
- Elementos de un Query en JPQL
- Named Queries
- Creación y ejecución de queries
- La interface Query
- Manejo de Parametros
- Obtención de entidades
- Java Persistence Query Language (JPQL)
- Diferencias con SQL
- Tipos de Sentencias
- La clausula FROM
- Expresiones de condición y operadores
- JPQL functions
- La clausula SELECT
- Queries polimórficos
- Agregaciones
- Ordenamiento
- Subqueries
- Joins
- Ejecución de queries nativos
- Queries dinamicos don SQL nativo
|