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.
 
michaelpaliz 8ded59ebde adding diagrama png 1 year ago
.idea adding changes 1 year ago
.settings adding project 1 year ago
src/main adding changes 1 year ago
target/classes adding diagrama png 1 year ago
.classpath adding project 1 year ago
.project adding project 1 year ago
README.md adding diagrama png 1 year ago
diagrama.png adding diagrama png 1 year ago
pom.xml adding project 1 year ago
primerEjemplo.iml adding project 1 year ago

README.md

PROYECTO SPRING CORE

MINI-TIENDA DE LIBROS

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.

Procedimiento

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

* Creo 2 interfaces donde basicamente creo los metodos generales, despues en la otra interfaz introduzco los mas especificos para cada libro.

* Existen 2 clases mas que implementan las interfaces, que es donde implementaremos la primera capa de abstraccion en nuestras funciones.

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

Creo una clase Tienda donde creo el menu e introduzco varias funciones para el usuario.

  • Mostrar Libros
  • Mostrar Categorias
  • Mostrar por Categoria
  • Mostrar por ISBN
  • Mostrar por Titulo
  • Mostrar por Periodo
  • Comprar libro

Digrama de la app

OBSERVACIONES

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.

La clase Predicate ha sido muy util la verdad es que no sabia que era hasta que empece a utilizarlo.

Lamdbas es muy importante tanto como el predicate en este ejercicio te ayuda a simplificar mucho el codigo en varias lineas.

Anotaciones

Autowired

Tiene el mismo efecto que la configuracion via XML

Busca un bean y lo inyecta en la depencia

Se realiza un autocableado byType

*Donde lo podemos usar*

Lo podemos utilizar en un metodo setter

    @Autowired
    public void setPeliculas(PeliculasServicio peliculasServicio){....}

Definicion en la propiedad

    @Autowired
    private PeliculaServicio peliculaServicio;

En el constructor

    @Autowired
    public PeliculaServicio(PeliculaServicio){....}

Ejemplo en el xml

    <bean id="peliculaDaoMemory"
          class="com.primerEjemplo.PeliculaImplements"
          init-method="cargarDatos" />

    <bean id="peliculaService" class="com.primerEjemplo.Modelo.PeliculaServicio" autowire="byType"/>

Ejemplo del main

//		Necesitamos el bean de servicios para printar por pantalla la logica
		PeliculaServicio peliculaService = appContext.getBean(PeliculaServicio.class);
        peliculaService.peliculasPorGenero("Drama").forEach(System.out::println);
        appContext.close();