#API REST SPRING BOOT DESDE CERO – ESTRUCTURA DEL PROYECTO


Ahora empezaremos a trabajar en nuestro proyecto, primero analizaremos la estructura.


Como podemos observar tenemos una estructura de carpetas que entre las cuales encontramos las siguientes:
1.    Source Packages: Es donde tendremos todos los paquetes que contendrán el código fuente de nuestro proyecto.
2.  Test Packages: Es donde tendremos todos los paquetes que contendrán el código necesario para realizar pruebas unitarias en nuestro proyecto.
3.  Other Sources: Aquí encontraremos otros archivos necesarios para nuestro proyecto como archivos estáticos, plantillas, archivos de propiedades, archivos de texto, etc.
4.  Dependencies: Aquí están las dependencias que necesita nuestro proyecto en tiempo de compilación.
5.  Runtime Dependencies: Aquí están las dependencias que se utilizaran en tiempo de ejecución.
6.  Test Dependencies: Aquí encontraremos las dependencias que necesitamos para realizar pruebas unitarias en nuestro proyecto.
7.    Project Files: Aquí encontraremos los archivos que permitirán gestionar la configuración y la forma en como se construye nuestro proyecto como POM.xml.

La clase principal: ApirestApplication

La clase principal de nuestro proyecto Spring Boot es el punto de entrada a nuestra aplicación, que contiene el método estático main que inicia el ApplicationContext de Spring (que es el contenedor de todos los componentes de Spring) a través de la ejecución de SpringApplication.run(ApirestApplication.class, args).


Al usar la anotación @SpringBootApplication estamos en realidad englobando 3 anotaciones que funcionan de la siguiente manera:

@Configuration: Esta anotación categorizara a la clase que esta anotada como una clase de configuración. Por lo cual Spring entenderá que esta clase es una clase de configuración.

@EnableAutoConfiguration: La configuración automática de Spring Boot realiza las configuraciones por defecto de las dependencias de nuestro proyecto por ejemplo como estamos usando Spring Web automáticamente define el DispatcherServlet y le da la configuración predeterminada mínima para que nuestro proyecto funcione.

@ComponentScan: Esta anotación se utiliza con @Configuration para indicar a Spring de que paquetes debe cargar los componentes (beans, servicios, repositorios, etc).

Nota: Las anotaciones es una forma de añadir metadatos a los componentes del programa como clases, métodos, etc. que proporcionan información que se puede utilizar de la siguiente forma:

  1.  Información para el compilador: El compilador puede utilizar las anotaciones para detectar errores o suprimir las advertencias.
  2. Procesamiento en tiempo de compilación y tiempo de implementación: Las herramientas de software pueden procesar información de anotaciones para generar código, archivos XML, etc.
  3. Procesamiento de tiempo de ejecución: Algunas anotaciones están disponibles para ser examinadas en tiempo de ejecución.
application.properties

Es un archivo que contiene el formato key=value que permite especificar muchas de las propiedades de los módulos de Spring como el contexto de nuestra aplicación el puerto por el cual escuchara nuestro servidor embebido, etc.



Por ejemplo utilizando server.port=8080 le estamos diciendo a Spring Boot que nuestro servidor embebido escuchara las peticiones en el puerto 8080.

Nota: En el siguiente enlace puedes encontrar todas las propiedades que puedes cambiar en el application.properties, su valor por defecto y su respectiva descripción.


pom.xml

POM (Project Object Model) es el archivo principal que usa Maven para realizar su trabajo.      Es un archivo XML que contiene información sobre el proyecto y los detalles de configuración utilizados por Maven para construir el proyecto. Al ejecutar una tarea u objetivo, Maven busca el POM en el directorio actual. Lee el POM, obtiene la información de configuración necesaria y luego ejecuta el objetivo.

Algunas de las configuraciones que se pueden especificar en el POM son las dependencias del proyecto, los complementos u objetivos que se pueden ejecutar, los perfiles de compilación, etc. También se puede especificar otra información, como la versión del proyecto, la descripción, los desarrolladores, las listas de correo y demás.


En el siguiente post explicaremos como crear nuestro primer servicio web.




Comentarios

Entradas populares de este blog

Modificar un archivo dentro de un .jar

Angular directivas para validar input (enteros y decimales)