EJB - Persistencia

¿Qué es un beans de entidad?

    Representan un objeto concreto que tiene existencia en alguna base de datos de la empresa. Una instancia de un bean de entidad representa una fila en una tabla de la base de datos. Por ejemplo, podríamos considerar el bean Cliente, con una instancia del bean siendo Eva Martínez (ID# 342) y otra instancia Francisco Gómez (ID# 120).
¿Qué es un pool de conexión?

    Una implementación interesante de estos DataSource son los "Pool" de conexiones. Basicamente, estos "pool" nos facilitan conexiones según se las vamos pidiendo, pero las "reaprovechan" de una petición a otra. La idea es la siguiente: Le pedimos al pool una conexión. Este busca una que esté libre y nos la da, apuntando que la tenemos nosotros y que deja de estar libre. Nosotros realizamos nuestra operación (consulta, inserción, borrado, ...) y cerramos la conexión. El pool recibe esta petición de cierre y NO cierra la conexión, sino que la deja abierta y la vuelve a marcar libre para el siguiente que la pida.

    Con esta forma de trabajo, el pool mantiene varias conexiones abiertas que va sirviendo y marcando como usadas según se le piden. Cuando desde fuera se cierran esas conexiones, el pool no las cierra y las marca como libres, para poder reaprovecharlas. 
¿Qué es un Entity Class?

    Una entidad es un objeto de dominio persistencia de peso ligero. Típicamente una entidad representa una tabla en una base de datos relacional, y cada instancia de la entidad corresponde a una fila en la tabla. El artefacto de programación principal de la entidad es la clase de entidad, si bien las entidades pueden utilizar clases de ayuda.
    El estado persistente de una entidad se representa ya sea a través de campos persistentes o propiedades persistentes. Estos campos o propiedades de uso de objetos / anotaciones de mapeo relacional para mapear las entidades y relaciones de entidad a los datos relacionales en el almacén de datos subyacente.

    Pasos para crear un EntityClass:

    Este inicio rápido muestra cómo crear una entidad Java persistente. Crearemos una entidad para asociarla a una tabla de base de datos. También necesitará añadir la tabla ADDRESS a su base de datos.

    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:

    5. private Long id;
      private String city;
      private String country;
      private String stateOrProvince;
      private String postalCode;
      private String street;

    6. Pulse Finalizar. Cuando haya finalizado la creación de la entidad JPA, Eclipse visualizará la entidad Address en la vista Estructura JPA.

    7. 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.?

    En informática y ciencias computacionales, en particular en análisis y diseño orientado a objetos, el término lógica de negocio es la parte de un sistema que se encarga de codificar las reglas de negocio del mundo real que determinan cómo la información puede ser creada, mostrada y cambiada. En programación es una de las capas del modelo MVC Modelo–vista–controlador separando así la complejidad del desarrollo en capas independientes.
    Son rutinas que realizan entradas de datos, consultas a los datos, generación de informes y más específicamente todo el procesamiento que se realiza detrás de la aplicación visible para el usuario (Backend).
¿Qué es WAR?

    En computación, un archivo WAR (de 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?

    Los message-driven beans son componentes detalladas en EJB 2.0 que pueden recibir y consumir mensajes asíncronamente. Un message-driven bean es invocado por el container como resultado de la recepción de un mensaje enviado por un cliente utilizando Java Message Service (JMS).

    Los message-driven beans sólo reciben mensajes JMS, sin conocer de antemano la información sobre contenido del mensaje recibido. Por esta razón sólo tienen un método con lógica de negocio llamado onMessage(), que recibe un Message JMS que puede representar todos los tipos de mensajes existentes en JMS como mensajes de bytes, de texto y de objetos serializables. Luego hay que discriminar el tipo de mensaje recibido utilizando el operador instanceOf.
¿Qué es Timer Service?

    Las aplicaciones que los flujos de trabajo modelo de negocios a menudo se basan en las notificaciones cronometrados. El servicio de temporizador del depósito de granos de la empresa le permite programar cronometrada notificaciones para todos los tipos de beans de empresa a excepción de los beans de sesión con estado. Puede programar una notificación oportuna a producirse de acuerdo con un horario de calendario, en un momento determinado, después de un período de tiempo, o en intervalos de tiempo. Por ejemplo, podría configurar temporizadores para que suene a las 10:30 am el 23 de mayo, en 30 días, o cada 12 horas.

    Temporizadores de frijol de la empresa son o bien temporizadores programáticas o temporizadores automáticos. Temporizadores programáticas son establecidas por una llamada explícita a uno de los métodos de creación de temporizador de la TimerServiceinterfaz. Temporizadores automáticos se crean en la implementación exitosa de un bean de empresa que contiene un método anotado con la javax.ejb.Scheduleo javax.ejb.Scheduleslas anotaciones.
Dependency injection (inyección de dependencia)


    En informática, inyección de dependencias (en inglés Dependency Injection, DI) 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.

    La forma habitual de implementar este patrón es mediante un "Contenedor DI" y objetos planos o simples por ejemplo los llamados POJO en Java. El contenedor inyecta a cada objeto los objetos necesarios según las relaciones plasmadas en un fichero de configuración.

    Típicamente este contenedor es implementado por un framework externo a la aplicación (como Spring entre otros), por lo cual en la aplicación también se utilizará inversión de control al ser el contenedor (almacenado en una biblioteca) 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í.
Buscar un ejemplo de inyección de dependencia y colocarlo en la página

El siguiente ejemplo muestra una implementación sin inyección de dependencias.
public class Vehiculo {
   
    
    /** @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;
    }

}
 
La implementación de arriba necesita crear una instancia de Motor para calcular su velocidad. El siguiente ejemplo sencillo muestra una implementación 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;
    }

} 
 
En este ejemplo VehiculoFactory representa al proveedor. Es una aplicación sencilla del patrón de diseño fábrica que hace posible que la clase Vehículo no requiera saber cómo obtener un motor por sí misma, sino que es la responsabilidad de VehiculoFactory.

Para que sirve @EJB

Son una de las interfaces de programación de aplicaciones (API) que forman parte del estándar de construcción de aplicaciones empresariales J2EE (ahora JEE) de Oracle Corporation (inicialmente desarrollado por Sun Microsystems).

Para que sirve @Resource

El javax.annotation.Resource anotación se utiliza para declarar una referencia a un recurso. @Resource puede decorar una clase, un campo o un método. El contenedor inyectará el recurso mencionado por @Resource en el componente, ya sea en tiempo de ejecución o cuando el componente se inicializa, dependiendo de si se utiliza campo / inyección método o inyección clase. Con el campo y de inyección basada en el método, el recipiente inyectará el recurso cuando se inicializa la aplicación. Para la inyección basada en la clase, el recurso se levantó por la aplicación en tiempo de ejecución.

No hay comentarios:

Publicar un comentario

Tecnologías fundamentales para el desarrollo de aplicaciones web

Lectura recomendada     Sitio web Un sitio web es un conjunto de archivos electrónicos y páginas web referentes a un tema en particular,...