EJB-PERSISTENCIA
- Qué es un beans de entidad?
Es una arquitectura de componentes de servidor que simplifica el proceso de construcción de aplicaciones de componentes empresariales distribuidos en Java. permiten desarrollar aplicaciones portables entre distintas plataformas (son Java) y servidores de aplicaciones (especificación estándar).
Un EJB es un componente software que se ejecuta del lado del servidor en una aplicación multi-capa. Los clientes del EJB acceden a él por medio de una interfaz que esconde los detalles de implementación del componente.
e
Su objetivo es encapsular los objetos del lado del servidor que almacena
los datos. Los EJB de entidad presentan la característica fundamental de
la persistencia: (nota: en la documentación de Java para JEE 5.0, los entity beans desaparecen, porque son remplazados por Java Persistence API o JPA) - Persistencia
CPM (Container Managed Persistence): La persistencia la gestiona el contenedor de forma que el desarrollador no se preocupa de las sentencias SQL de inserción, recuperación, etc.
- Qué es un pool de conexión
Es una clase java que tiene abiertas varias conexiones a base de datos.
Cuando alguien necesita una conexión a base de datos, en vez de abrirla
directamente con DriverManager.getConnection(), se la pide al pool usando su método pool.getConnection(). El pool
coge una de las conexiones que ya tiene abierta, la marca como que
alguien la está usando para no dársela a nadie más y la devuelve. La
siguiente llamada a este método pool.getConnection(), buscará una conexión libre para marcarla como ocupada y la devolverá ... y así sucesivamente.
Cuando el que ha pedido la conexión termina de usarla, normalmente
después de una transacción con la base de datos o varias seguidas, llama
al método connection.close(). Esta conexión que nos ha sido entregada por el pool, realmente no se cierra con esta llamada. El método close() únicamente avisa al pool
que ya hemos terminado con la conexión, de forma que sin cerrarla, la
marca como libre para poder entregársela a otro que lo pida.
- Como crear un pool de conexión
Connection conexion = pool.getConnection();
// Se hace una o más transacciones: select, update, insert, delete ...
// Se libera la conexión para su posible uso por otro hilo
conexion.close();
- Qué es un Entity Class
Son clases de valor combinadas que son administradas por enlaces de entidad.
Estas clases contienen campos que son una unión de los campos de la
clave y clases de valor que se definieron anteriormente para cada
almacén. Las clases de entidad pueden definirse en cualquier forma deseada por la aplicación.
La vinculación de entidad, que también se define por la aplicación, es
responsable de la asignación entre objetos de clave / valor y objetos de
entidad.
- Pasos para crear un EntityClass
-
Seleccione el proyecto JPA en el Navegador o en el Explorador de proyectos y pulse Nuevo >
Otro. Se visualizará el diálogo
Seleccionar un
asistente.
- Seleccione JPA > Entidad y pulse Siguiente. Se visualizará la Clase de entidad.
-
Especifique el nombre de paquete (como por ejemplo
quickstart.demo.model
), el nombre de clase (como por ejemploAddress
) y pulse Siguiente. Se visualizará la página Propiedades de entidad, que permite definir los campos de persistencia que correlacionará con las columnas de una tabla de base de datos. -
Utilice el diálogo Campos de entidad (que
se abre pulsando Añadir) para añadir campos de persistencia a la clase Address:
private Long id; private String city; private String country; private String stateOrProvince; private String postalCode; private String street;
Nota:También deberá añadir las columnas siguientes a la tabla de base de datos ADDRESS:
NUMBER(10,0) ADDRESS_ID (clave primaria) VARCHAR2(80) PROVINCE VARCHAR2(80) COUNTRY VARCHAR2(20) P_CODE VARCHAR2(80) STREET VARCHAR2(80) CITY
-
Pulse Finalizar. Cuando haya finalizado la creación de
la entidad JPA, Eclipse visualizará la entidad
Address en la vista Estructura JPA.
Address.java incluye la anotación@Entity
, los campos de persistencia y los métodosget
yset
para cada uno de los campos.
- Qué es la logica de negocio en EJB.
La lógica del negocio, en este contexto, es tomada como aquella funcionalidad ofrecida por el software. El software se comunica de manera amigable con el usuario a partir de la interfaz, pero el procesamiento de los datos capturados como entrada y la posterior entrega de resultados al usuario por medio de la interfaz, es conocido como la Lógica de Negocio.
- Qué es WAR (Web Application Archive - Archivo de aplicación web)?
Es un archivo JAR utilizado para distribuir una colección de JavaServer Pages, servlets, clases Java, archivos XML, bibliotecas de tags y páginas web estáticas (HTML y archivos relacionados) que juntos constituyen una aplicación web.
- Qué es Message driven beans
- Qué es Timer Service
- Dependency injection (inyección de dependencia)
Es un patrón de diseño
orientado a objetos, en el que se suministran objetos a una clase en
lugar de ser la propia clase la que cree el objeto. El término fue
acuñado por primera vez por Martin Fowler.
En JAVA su forma de implementación es mediante un "Contenedor DI" y los objetos planos y simples llamados POJO en JAVA el contenedor inyecta a cada objeto los objetos necesarios según las relaciones plasmadas en un fichero de configuración. Este contenedor es implementado por un framework externo a la aplicación, por lo cual en la aplicación también se utilizará Inversión de Control al ser el contenedor quien invoque el código de la aplicación. Ésta es la razón por la que los términos de inversión de control e inyección de dependencias se confunden habitualmente entre sí.
Ejemplo de Inyección de Dependencia
public class Vehiculo {
private Motor motor = new Motor();
/** @retorna la velocidad del vehículo*/
public Double enAceleracionDePedal(int presionDePedal) {
motor.setPresionDePedal(presionDePedal);
int torque = motor.getTorque();
Double velocidad = ... //realiza el cálculo
return velocidad;
}
}
//se omite la clase Motor ya que no es relevante para este ejemplo
Usando Inyección de dependencias
public class Vehiculo {
private Motor motor = null;
public void setMotor(Motor motor){
this.motor = motor;
}
/** @retorna la velocidad del vehículo*/
public Double enAceleracionDePedal(int presionDePedal) {
Double velocidad = null;
if (null != motor){
motor.setPresionDePedal(presionDePedal);
int torque = motor.getTorque();
velocidad = ... //realiza el cálculo
}
return velocidad;
}
}
//se omite la clase Motor ya que no es relevante para este ejemplo
public class VehiculoFactory {
public Vehiculo construyeVehiculo() {
Vehiculo vehiculo = new Vehiculo();
Motor motor = new Motor();
vehiculo.setMotor(motor);
return vehiculo;
}
}
- Para qué sirve @EJB y @Resource?
Atributos:
java.lang.Class interfazBean(Aloja uno de los tipos de interfaz del EJB de destino siguientes: [ interfaz de empresa local, interfaz de empresa remota, interfaz inicial local, interfaz inicial remota ])
java.lang.String nombreBean java.lang.String nombreCorrelacionado java.lang.String nombre
Descripción:
Indica una dependencia en la vista local o remota de un Enterprise Java Bean.
Con la anotación @EJBs se declaran diversas anotaciones @EJB a nivel de tipo.
@Resource
Atributos:
Resource.AuthenticationType tipoAutenticaciónTipo de autenticación a utilizar para este recurso.
java.lang.String descripción java.lang.String nombreCorrelacionado java.lang.String nombreNombre JNDI del recurso.
booleano compartibleIndica si este recurso se puede compartir entre este y otros componentes.
Clase tipoTipo Java del recurso.
Descripción: La anotación Resource marca un recurso que la aplicación necesita. Esta
anotación se puede aplicar en una clase de componente de aplicación, o
bien en campos o métodos de la clase de componente. Cuando la anotación
se aplica a un campo o método, el contenedor inyectará una instancia del
recurso solicitado en el componente de aplicación cuando este se
inicialice. Si la anotación se aplica en la clase de componente, la
anotación declara un recurso que la aplicación buscará en tiempo de
ejecución.
- Qué es Interceptors?
Un interceptor es un método al que se llama automáticamente cuando se
invocan los métodos de negocio de Enterprise JavaBeans (EJB) o se
producen sucesos de ciclo vital de un EJB.
Ejemplo:
@Interceptors({ClassInterceptor1.class, ClassInterceptor2.class})
public class TestBean { /* ... */ }
@Interceptors({ClassInterceptor1.class})
public class TestBean2 {
@Interceptors({MethodInterceptor1.class, MethodInterceptor2.class})
public void businessMethod() { /* ... */ }
}
Utilice el siguiente ejemplo para declarar interceptores utilizando el descriptor de despliegue:
<assembly-descriptor>
<interceptor-binding>
<ejb-name>TestBean</ejb-name>
<interceptor-class>ClassInterceptor1</interceptor-class>
<interceptor-class>ClassInterceptor2</interceptor-class>
</interceptor-binding>
<interceptor-binding>
<ejb-name>TestBean2</ejb-name>
<interceptor-class>ClassInterceptor1</interceptor-class>
</interceptor-binding>
<interceptor-binding>
<ejb-name>TestBean2</ejb-name>
<interceptor-class>MethodInterceptor1</interceptor-class>
<interceptor-class>MethodInterceptor2</interceptor-class>
<method>
<method-name>businessMethod</method-name>
</method>
</interceptor-binding>
</assembly-descriptor>
Puede excluir interceptores a nivel de clase de un método
mediante la anotación ExcludeClassInterceptors o el elemento
exclude-class-interceptors del descriptor de despliegue. Utilice el
ejemplo siguiente para excluir el interceptor ClassInterceptor del
método businessMethod.
@Interceptors({ClassInterceptor1.class})
public class TestBean2 {
@ExcludeClassInterceptors
public void businessMethod() { /* ... */ }
public void businessMethodWithClassInterceptor1() { /* ... */
}
Utilice el ejemplo siguiente para excluir el interceptor del método utilizando el descriptor de despliegue:
<assembly-descriptor>
<interceptor-binding>
<ejb-name>TestBean2</ejb-name>
<exclude-class-interceptors>true</exclude-class-interceptors>
<method>
<method-name>businessMethod</method-name>
</method>
</interceptor-binding>
</assembly-descriptor>
- Para qué sirve @Arroundlnvoke?
- Qué son objetos integrados?
Páginas Active Server (ASP) implementa clases que permiten a los
componentes tener acceso a las propiedades y los métodos de los objetos
integrados de ASP. El objeto ObjectContext expone métodos que
devuelven una interfaz a uno de los objetos integrados de ASP. El
componente puede utilizar estas interfaces para tener acceso a los
métodos y las propiedades de los objetos integrados.
Clases de los Objetos Integrados:
Clase
Se utiliza para | |
Objeto Application | Llamar a los métodos y a las propiedades del Objeto Application. |
Objeto ASPError | Llamar a los métodos y las propiedades del Objeto ASPError. |
Objeto ObjectContext | Devolver los objetos integrados y proporcionar los métodos que se utilizan en el procesamiento de transacciones. |
Objeto Request | Llamar a los métodos y las propiedades del Objeto Request. |
Objeto Response | Llamar a los métodos y las propiedades del Objeto Response. |
ScriptingContext | Devolver los objetos integrados: Objeto Application, Objeto Request, Objeto Response, Objeto Server, or Objeto Session. Se trata de una opción obsoleta. En su lugar, utilice ObjectContext. |
Objeto Server | Llamar a los métodos y las propiedades del Objeto Server. |
Objeto Session | Llamar a los métodos y las propiedades del Objeto Session. |
<%@ LANGUAGE=JScript %>
<% Response.Cookies ("ColorPreferido") = "Morado"
Response.Cookies ("Pais") = "España"
Response.Cookies ("Color") ("Fondo") = "Verde"
Response.Cookies ("Color") ("Texto") = "Negro"
Response.Cookies ("Color") ("Marcas") = "Rojo" %>
<html>
<head>
<title>Ejemplo</title>
</head>
<body>
En este ejemplo se crean las cookies 'ColorPreferido' y
'Pais'. También se crea el diccionario 'Color' con las
claves 'Fondo', 'Texto' y 'Marcas'
</body>
</html>
- Qué es el BLOBS/CLOBS?
Enlaces
No hay comentarios:
Publicar un comentario