Pequeña introducción y creación de servicios rest con spring boot, H2, spring data y spring mvc.
Repo github: https://github.com/sebastian-bogado/recetario
3. SPRING
● Permite un mecanismo de inyección de dependencias
● @Autowired
● @Bean - @Component - @Service formas de indicar los
elementos que voy a inyectar
4. @Autowired
● Se puede usar a nivel atributo y a nivel constructor
● Indica que se van a inyectar los elementos a los cuales está
decorando la annotation
● Cuando se quiere un elemento en específico se debe usar
@Qualifier
● Se puede usar en collections
5. @Bean
● No queremos indicar que nuestra clase es un componente, pero
queremos inyectar esta en algún momento.
● Por lo general son implementaciones de ciertas interfaces que
spring declara, pero no implementa por la particularidad de cada
negocio.
● Tiene que estar dentro de un @Configuration.
● Chau XML de configuración.
6. @Component
● Declara que la clase con la que se anota será un componente de
spring
● Puede contener atributos autowireados.
● Es el padre de otras annotations como @Controller
@RestController y @Service
● Se usa por lo general para helpers, builder y demás clases que no
serán ni servicios, ni controladores
7. @Service
● Indicamos que dicha clase será un service.
● No importa si este service consumirá REST, SOAP o desde la BD.
● Es una especificación que hereda de @Component.
8. Spring boot
● Crea aplicaciones de spring stand alone
● Embebe tomcat
● Configura spring siempre que sea posible
● Provee un pom que contiene las versiones funcionan
correctamente.
● No necesitamos configurar más mediante xml, aunque si
podemos hacerlo.
9. H2
● H2 es una base de datos SQL en memoria.
● Cada vez que inicia la aplicación se reinicia la base de datos.
● Recomendada para cuando se está comenzando el desarrollo de
la aplicación.
● Ideal para cuando no se necesita un gran set de datos
precargados.
10. JPA
● @Entity se utiliza para señalar que esta clase será una entidad a persistir en la base de
datos.
● @Id Indica que dicho atributo es el id
● @GeneratedValue indica que sobre ese atributo se generará un valor (Usarlo en ids)
● @OneToMany Indica que por una instancia de esa clase habrá muchas de otra
● @ManyToOne Indica que por muchas instancias de esa clase habrá de la otra clase una
sola que se relacione con estas
11. Spring data
● @Repository indica que en esa interfaz están los métodos que interactúan con la base de
datos
● Utiliza Hibernate (un ORM) en su core.
● Genera las queries dinámicamente mediante el nombre de los métodos de la interfaz
● @NoRepositoryBean nos genera una interfaz que contendrá métodos a ser utilizados por
una interfaz que sea un @Repository
12. Spring MVC
● Crea servlet apis con spring desde el comienzo.
● Con @Controller crea controladores que atenderán los request solicitados.
● @RestController crea un controlador enfocado en respuestas rest y por default, acepta el
Content-Type Application/json.
● @RequestMapping indica donde estará el recurso.
13. Demo
● Crear el modelo
● Crear la capa de dao
● Crear la capa de servicios
● Crear los controllers
● Rezar que funcione