EJB-PERSISTENCIA

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
BMP (Bean Managed Persistence): Se delega en el desarrollador las tareas de persistir, buscar y recuperar las entidades.

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
 // Se le pide al pool una conexion libre
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
  1. 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.
  2. Seleccione JPA > Entidad y pulse Siguiente. Se visualizará la Clase de entidad.
  3. Especifique el nombre de paquete (como por ejemplo quickstart.demo.model), el nombre de clase (como por ejemplo Address) 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.
  4. 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
    
  5. 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étodos get y set para cada uno de los campos.


  • Qué es la logica de negocio en EJB.
DESDE LA ORIENTACIÓN A OBJETOS
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?
@EJB

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ón
   
Tipo de autenticación a utilizar para este recurso.
java.lang.String  descripción

 java.lang.String nombreCorrelacionado

 java.lang.String     nombre
Nombre JNDI del recurso.
booleano     compartible
Indica si este recurso se puede compartir entre este y otros componentes.
Clase     tipo
Tipo 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?
Especifica un método en una clase al que se llama durante la parte Around Invoke de una invocación EJB.
  • 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?
Los atributos de tipo Blob permiten almacenar información de tipo binario en bases de datos.
Enlaces

No hay comentarios:

Publicar un comentario

HTML

HTML Sigla en inglés de  HyperText Markup Language  (lenguaje de marcas de hipertexto), hace referencia al  lenguaje de marcado  para l...