Mini tienda de libros.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.9 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <h1> PROYECTO SPRING CORE </h1>
  2. <h2>MINI-TIENDA DE LIBROS</h2>
  3. <p>En esta mini tienda de libros he implementado 7 basicas funciones para la tienda, no lo he echo por comandos por motivos de tiempo y simplicidad de la aplicacion. </p>
  4. <p><strong>Procedimiento</strong></p>
  5. <p> * Los datos los he buscado por internet, es un fichero json (libros.json) lo he parseado empeze a controlar algunos campos para evitar muchas exepciones inecesarias porque algunos objetos del json no existian para todos los libros.</p>
  6. <p> * Creo 2 interfaces donde basicamente creo los metodos generales, despues en la otra interfaz introduzco los mas especificos para cada libro. </p>
  7. <p> * Existen 2 clases mas que implementan las interfaces, que es donde implementaremos la primera capa de abstraccion en nuestras funciones.</p>
  8. <p> * Por ultimo la clase servicio que es donde realizaremos la parte mas grande de la logica que es la busquecada mas la comparacion segun lo que necesitemos hacer por cada metodo.</p>
  9. <p>Creo una clase Tienda donde creo el menu e introduzco varias funciones para el usuario.</p>
  10. <ul>
  11. <li>Mostrar Libros</li>
  12. <li> Mostrar Categorias </li>
  13. <li> Mostrar por Categoria </li>
  14. <li> Mostrar por ISBN </li>
  15. <li> Mostrar por Titulo</li>
  16. <li> Mostrar por Periodo</li>
  17. <li> Comprar libro</li>
  18. </ul>
  19. <p>Digrama de la app</p>
  20. <img src="diagrama.png">
  21. <h3> OBSERVACIONES </h3>
  22. <p>El proyecto necesita algunas mejoras, como por ejemplo la simplicidad del codigo y sobretodo la restrocturacion ya que me gustaria indigar mas en las clases y limpiar mas el codigo.</p>
  23. <p>La clase Predicate ha sido muy util la verdad es que no sabia que era hasta que empece a utilizarlo.</p>
  24. <p>Lamdbas es muy importante tanto como el predicate en este ejercicio te ayuda a simplificar mucho el codigo en varias lineas.</p>
  25. <h2> Anotaciones </h2>
  26. <h3>Autowired </h3>
  27. <p>Tiene el mismo efecto que la configuracion via XML</p>
  28. <p>Busca un bean y lo inyecta en la depencia</p>
  29. <p>Se realiza un autocableado byType </p>
  30. <h4>*Donde lo podemos usar*</h4>
  31. <p>Lo podemos utilizar en un metodo setter</p>
  32. ```java
  33. @Autowired
  34. public void setPeliculas(PeliculasServicio peliculasServicio){....}
  35. ```
  36. <p>Definicion en la propiedad</p>
  37. ```java
  38. @Autowired
  39. private PeliculaServicio peliculaServicio;
  40. ```
  41. <p>En el constructor</p>
  42. ```java
  43. @Autowired
  44. public PeliculaServicio(PeliculaServicio){....}
  45. ```
  46. <p>Ejemplo en el xml </p>
  47. ```xml
  48. <bean id="peliculaDaoMemory"
  49. class="com.primerEjemplo.PeliculaImplements"
  50. init-method="cargarDatos" />
  51. <bean id="peliculaService" class="com.primerEjemplo.Modelo.PeliculaServicio" autowire="byType"/>
  52. ```
  53. <p>Ejemplo del main</p>
  54. ```java
  55. // Necesitamos el bean de servicios para printar por pantalla la logica
  56. PeliculaServicio peliculaService = appContext.getBean(PeliculaServicio.class);
  57. peliculaService.peliculasPorGenero("Drama").forEach(System.out::println);
  58. appContext.close();
  59. ```