DevJava 20250112-1 Flashcards
¿Qué es Apache Maven y cuál es su propósito principal?
Apache Maven es una herramienta de automatización de compilación y gestión de proyectos para proyectos Java. Su propósito principal es simplificar el proceso de construcción, gestión de dependencias y documentación de proyectos, permitiendo a los desarrolladores enfocarse en el desarrollo del código.
Describe la estructura básica de un archivo POM en Maven.
Un archivo POM (Project Object Model) en Maven es un archivo XML que contiene la configuración del proyecto. Sus elementos básicos incluyen:
- <modelVersion>
: versión del modelo POM.
- <groupId>
: identifica el grupo o la organización.
- <artifactId>
: identifica el artefacto único dentro del grupo.
- <version>
: versión del artefacto.
- <dependencies>
: lista de dependencias del proyecto.
- <build>
: configuraciones de construcción, incluyendo plugins.
¿Cómo se gestiona una dependencia en Maven y qué información se necesita?
Para gestionar una dependencia en Maven, se agrega un bloque <dependency>
dentro del <dependencies>
en el POM. La información necesaria incluye:
- <groupId>
: grupo de la dependencia.
- <artifactId>
: artefacto de la dependencia.
- <version>
: versión específica de la dependencia.
Explica el ciclo de vida de construcción en Maven.
El ciclo de vida de construcción en Maven está compuesto por varias fases que se ejecutan en orden secuencial. Las fases principales incluyen:
1. validate: valida que el proyecto está correcto y todas las dependencias necesarias están disponibles.
2. compile: compila el código fuente del proyecto.
3. test: ejecuta pruebas unitarias.
4. package: empaqueta el código compilado en un formato distribuible, como JAR o WAR.
5. verify: verifica el paquete para asegurar que cumple con los criterios de calidad.
6. install: instala el paquete en el repositorio local.
7. deploy: despliega el paquete en un repositorio remoto para compartir con otros desarrolladores.
¿Qué son los repositorios en Maven y cuáles son los tipos principales?
Los repositorios en Maven son ubicaciones donde se almacenan artefactos como dependencias y plugins. Los tipos principales son:
1. Repositorio local: ubicado en el sistema de archivos del desarrollador, generalmente en ~/.m2/repository
.
2. Repositorio central: un repositorio público mantenido por Maven donde se encuentran muchas dependencias comunes.
3. Repositorio remoto: repositorios adicionales configurados por la organización para alojar artefactos personalizados o privados.
¿Qué es el Inversion of Control (IoC) en el contexto de Spring Framework?
El Inversion of Control (IoC) en Spring Framework es un principio de diseño donde el control de los objetos y sus dependencias es delegado al contenedor de Spring. Esto permite una gestión más flexible y desacoplada de las dependencias, facilitando la configuración y prueba de aplicaciones.
Define Dependency Injection (DI) y sus tipos en Spring.
Dependency Injection (DI) es un patrón de diseño donde las dependencias de un objeto son proporcionadas por un contenedor en lugar de ser creadas internamente. En Spring, los tipos principales de DI son:
1. Inyección por constructor: las dependencias se proporcionan a través del constructor de la clase.
2. Inyección por setter: las dependencias se establecen mediante métodos setter.
3. Inyección por campo: las dependencias se inyectan directamente en los campos de la clase, generalmente usando anotaciones como @Autowired
.
¿Qué es el contenedor de Spring y cómo gestiona los beans?
El contenedor de Spring es el núcleo del framework que gestiona la creación, configuración y ciclo de vida de los beans (objetos) en una aplicación. El contenedor lee las configuraciones de los beans desde archivos XML, anotaciones o Java Config, y utiliza Dependency Injection para resolver y suministrar las dependencias entre ellos.
Explica el concepto de Aspect-Oriented Programming (AOP) en Spring.
Aspect-Oriented Programming (AOP) en Spring permite separar preocupaciones transversales (como logging, seguridad, transacciones) del código de negocio principal. Utiliza conceptos como aspectos, puntos de corte, consejos y uniones para definir dónde y cómo se aplican las funcionalidades transversales sin afectar el código principal.
¿Qué es Spring MVC y cuáles son sus componentes principales?
Spring MVC es un framework basado en el patrón Modelo-Vista-Controlador para desarrollar aplicaciones web en Spring. Sus componentes principales son:
1. Modelo: representa los datos y la lógica de negocio.
2. Vista: presenta la interfaz de usuario.
3. Controlador: maneja las solicitudes del usuario, interactúa con el modelo y selecciona la vista adecuada para responder.
¿Qué es Spring Boot y cuáles son sus principales ventajas?
Spring Boot es un proyecto de Spring que facilita la creación de aplicaciones basadas en Spring con configuración mínima. Sus principales ventajas incluyen:
1. Auto-configuración: configura automáticamente los componentes necesarios según las dependencias.
2. Standalone: permite crear aplicaciones ejecutables con un servidor embebido.
3. Starter POMs: simplifica la gestión de dependencias mediante paquetes predefinidos.
4. Actuator: proporciona herramientas para monitorear y gestionar la aplicación en producción.
¿Qué son los Starters en Spring Boot y cómo se utilizan?
Los Starters en Spring Boot son conjuntos de dependencias preconfiguradas que facilitan la incorporación de funcionalidades específicas en una aplicación. Se utilizan agregando dependencias Starter en el archivo pom.xml
o build.gradle
, lo que simplifica la configuración inicial y asegura que las dependencias necesarias estén disponibles.
Describe el uso de perfiles en Spring Boot.
Los perfiles en Spring Boot permiten definir configuraciones específicas para diferentes entornos (desarrollo, pruebas, producción). Se utilizan mediante la anotación @Profile
en beans o archivos de propiedades separados (application-dev.properties
, application-prod.properties
), lo que facilita la gestión de configuraciones que varían según el entorno.
¿Qué es Spring Boot Actuator y para qué se utiliza?
Spring Boot Actuator es una herramienta que proporciona endpoints listos para usar para monitorear y gestionar una aplicación Spring Boot en producción. Se utiliza para obtener métricas, información sobre la salud de la aplicación, detalles de la configuración, y otros aspectos operativos, facilitando la administración y supervisión de la aplicación.
¿Cómo se configura una aplicación Spring Boot para usar una base de datos específica?
Para configurar una aplicación Spring Boot para usar una base de datos específica, se deben añadir las dependencias del controlador de la base de datos en el pom.xml
o build.gradle
, y luego definir las propiedades de conexión en el archivo application.properties
o application.yml
, como la URL de la base de datos, el nombre de usuario, la contraseña y el dialecto de JPA.
¿Qué es Spring Boot DevTools y cuáles son sus características principales?
Spring Boot DevTools es un módulo que proporciona herramientas de desarrollo que mejoran la experiencia de desarrollo con características como el reinicio automático de la aplicación cuando se detectan cambios en el código, la recarga de plantillas, y la habilitación de funcionalidades de depuración avanzada. Los beneficios incluyen una mayor productividad y un ciclo de desarrollo más rápido.