User Tools

Site Tools


microservicios_en_java

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
microservicios_en_java [2020/06/22 19:49]
admin
microservicios_en_java [2020/07/27 19:37] (current)
admin
Line 130: Line 130:
   * POST: Añadir información (No es idempotente)   * POST: Añadir información (No es idempotente)
   * PUT: Actualizar información o creación de recursos con un id conocido (es idempotente)   * PUT: Actualizar información o creación de recursos con un id conocido (es idempotente)
 +  * DELETE: Borra un elemento
 +
 +===== Exponer ficheros planos en java con spring boot =====
 +en el directorio src/​main/​resources/​static están expuestos automáticamente
  
 ====== Domain Driven design ====== ====== Domain Driven design ======
Line 216: Line 220:
 La anotación @Test marca que el método se tiene que ejecutar como test La anotación @Test marca que el método se tiene que ejecutar como test
  
-  @SpringRunner dentro de la anotación de junit se crea un puente entre los tests de SpringBoot y Junit+  @RunWith(SpringRunner.class) ​dentro de la anotación de junit se crea un puente entre los tests de SpringBoot y Junit
   @SpringBootTest carga todo el contexto de spring para los tests   @SpringBootTest carga todo el contexto de spring para los tests
   @AutoConfigureMockMvc configura los mocks   @AutoConfigureMockMvc configura los mocks
Line 248: Line 252:
  
 @RestController declara la clase para servicios rest @RestController declara la clase para servicios rest
 +
 +
 +Cada método de esa clase se puede anotar con el tipo. @GetMapping equilave a @RequestMapping(method=RequestMethod.GET)
 +
 @WebMvcTest iniciará el contexto de la aplicación wewb. Sólo carga la capa de controladores @WebMvcTest iniciará el contexto de la aplicación wewb. Sólo carga la capa de controladores
 @MockBean indica a Spring @MockBean indica a Spring
Line 254: Line 262:
 @GeneratedValue genera automáticamente un valor para el id @GeneratedValue genera automáticamente un valor para el id
 @Column(name= "​xxx"​) establece el nombre de un campo en bbdd a un atributo en java @Column(name= "​xxx"​) establece el nombre de un campo en bbdd a un atributo en java
 +@RequestBody se utiliza para recibir los datos de una petición dentro del cuerpo de la petición
 +@Param se utiliza para recibir los datos de una petición como argumento
 +@PathVariable se utiliza para recibir los datos de una petición dentro de la url
 +
 +Para utilizar estas etiquetas hay que declarar las siguientes dependencias en el fichero pom como alternativa a utilizar las dependencias de spring boot
 +
 +  <​dependency>​
 +  <​groupId>​org.springframework</​groupId>​
 +  <​artifactId>​spring-webmvc</​artifactId>​
 +  <​version>​5.2.1.RELEASE</​version>​
 +  </​dependency>​
 +  <​dependency>​
 +  <​groupId>​org.springframework</​groupId>​
 +  <​artifactId>​spring-web</​artifactId>​
 +  <​version>​5.2.1.RELEASE</​version>​
 +  </​dependency>​
 +  <​dependency>​
 +  <​groupId>​com.fasterxml.jackson.core</​groupId>​
 +  <​artifactId>​jackson-databind</​artifactId>​
 +  <​version>​2.9.8</​version>​
 +  </​dependency>​
 +
 +=== Proyecto web ===
 +
 +Para poder crear una aplicación que escuche conexiones hay que añadir la dependencia
 +  <​dependency>​
 +    <​groupId>​org.springframework.boot</​groupId>​
 +    <​artifactId>​spring-boot-starter-web</​artifactId>​
 +  </​dependency>​
 +
 +Para poder lanzar un servidor tomcat embebido hay que añadir la siguiente dependencia. Esta dependencia no es necesaria si únicamente se quiere tener un servidor web
 +  <​dependency>​
 +  <​groupId>​org.springframework.boot</​groupId>​
 +  <​artifactId>​spring-boot-starter-tomcat</​artifactId>​
 +  </​dependency>​
 +
 +
 +=== Entity ===
  
 +Para poder utilizar la anotación @Entity hay que añadir la dependencia
 +  <​dependency>​
 +    <​groupId>​org.springframework.boot</​groupId>​
 +    <​artifactId>​spring-boot-starter-data-jpa</​artifactId>​
 +  </​dependency>​
  
 ====== Arquitectura basada en eventos ====== ====== Arquitectura basada en eventos ======
Line 286: Line 337:
  
  
 +@Slf4j es una fachada común para usar los logs.
 +
 +Jetty es un servidor web y de aplicaciones de Eclipse. Al estilo Tomcat
 +
 +====== Descubrimiento de servicios ======
 +Consul o Eureka (Stack de Netflix OSS)
 +
 +Service Registry
 +
 +Register Agent
 +
 +Service Discovery Client
 +
 +====== Balanceo de carga ======
 +Eureka y Ribbon
 +
 +https://​tdp.io/​lb-opts
 +
 +====== Enrutamiento con API Gateway ======
 +Zuul
 +
 +====== Patrón circuit breaker ======
 +
 +Evita que fallos de un componente aislado provoque un fallo total en el sistema
 +Hystrix
  
microservicios_en_java.1592848144.txt.gz · Last modified: 2020/06/22 19:49 by admin