Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
simo:documentos:tecnicos:servicio [2017/10/25 04:17] lgomez creado |
simo:documentos:tecnicos:servicio [2017/10/25 05:09] (actual) lgomez |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | La capa de servicios contiene aquellos Beans de Spring que proporcionan la lógica de negocios de la aplicación, en general los servicios son marcados con la anotación @Service la cual los convierte en Beans de tipo Singleton para el framework, | + | La capa de servicios contiene aquellos Beans de Spring que proporcionan la lógica de negocios de la aplicación, en general los servicios son marcados con la anotación @Service la cual los convierte en Beans de tipo Singleton manejados por el framework. |
+ | Los servicios contienen todos los métodos que son considerados suficiente complejos para no ser implementados directamente en los controladores mediante llamados a los repositorios (Por ejemplo, crear un usuario o activar una convocatoria). En general estos métodos involucran el uso de uno o más repositorios y están marcados con la anotación @Transactional para que se ejecuten en un bloque transaccional completo. | ||
+ | |||
+ | Si bien la mayoría de servicios corresponden a alguna de las entidades principales y de hecho son llamados nemotécnicamente con el nombre de la entidad y el sufijo Service (Por ejemplo, ConvocatoriaService), esta capa también contiene los servicios de soporte necesarios para la operación del sistema. Los principales servicios de soporte son: | ||
+ | |||
+ | * **AccesControllerAspect:** Aspecto que intercepta las llamadas a los controladores REST para proporcionar control de acceso a nivel de método. | ||
+ | * **RuleService:** Evalua reglas de negocio especificadas en Spring Expression Language | ||
+ | * **ModelAccessService:** Calcula permisos para una entidad con base en las reglas de negocio asociadas a la misma | ||
+ | * **ExcepcionService:** Proporciona información de excepciones a las reglas de negocio (Creadas explícitamente para ignorar una regla de negocio en particular | ||
+ | * **JobService:** Permite el agendamiento y ejecución de trabajos sincrónicos y asincrónicos. Estos trabajos corresponden a tareas realizadas fuera de la máquina virtual Java del servidor SIMO (por ejemplo invocaciones a procedimientos almacenados, invocación de ETLs, cargues de archivos). Los trabajos se utilizan generalmente cuando las tareas a realizar exigen mayores recursos, o mayor rendimiento del que se puede lograr utilizando Java y el framework Spring | ||
+ | * **ReportService:** Permite la creación y almacenamiento de reportes en PDF utilizando el framework Jasper Reports | ||
+ | * **SearchIndexBuilder:** Permite reindexamientos masivos para Hibernate Search, es decir que permite reconstruir masivamente los índices invertidos de Lucene. | ||
+ | * **PSEPagoService_** Controla el ciclo de vida de los pagos en línea | ||
+ | * **EnvioCorreo ** Permite enviar correos electrónicos | ||
+ |