Spring Framework, Es Un Marco de Trabajo para El Desarrollo de Aplicaciones en Java, Este
Spring Framework, Es Un Marco de Trabajo para El Desarrollo de Aplicaciones en Java, Este
Spring Boot: Spring Boot es un proyecto dentro del ecosistema de Spring que se enfoca en
simplificar el desarrollo de aplicaciones Spring
Diferencias Principales:
2- ¿Qué es un bean?
- Tienen un ciclo de vida: Los beans en Spring pueden pasar por diferentes fases
en su ciclo de vida. Estas fases incluyen la creación, la inicialización y la
destrucción.
En resumen, un bean en Spring es una instancia gestionada por Spring que representa un
componente de la aplicación, y su ciclo de vida y configuración son manejados por el
contenedor de Spring, facilitando así la creación de aplicaciones modulares y
mantenibles."
@Component
@Scope("singleton")
public class MiBean {
// Implementación del bean
}
o Prototype:
Cada vez que se solicita el bean, se crea una nueva instancia.
No comparte el estado entre las diferentes solicitudes.
o Request:
Crea una nueva instancia del bean para cada solicitud HTTP
Es útil en aplicaciones web para garantizar que cada solicitud
tenga su propia instancia del vean
o Session:
Crea una única instancia del bean para cada sesión del usuario
Es útil en aplicaciones web para mantener el estado específico
del usuario durante toda su sesión.
o Application:
Similar a Singleton, pero se asocia con la vida de la aplicación
web en lugar del contenedor de Spring.
Útil en aplicaciones web para compartir información entre
diferentes componentes de la aplicación.
o Websocket:
Se crea una instancia única por cada sesión WebSocket
Específico para aplicaciones que utilizan WebSockets
Ventajas:
- GET – @GetMapping:
@GetMapping("/ruta")
- POST – @PostMapping:
@PostMapping("/ruta")
- PUT – @PutMapping:
@PutMapping("/ruta/{id}")
- DELETE – @DeleteMapping:
@DeleteMapping("/ruta/{id}")
- PATCH – @PatchMapping:
@PatchMapping("/ruta/{id}")
@Entity
@Table(name = "usuarios")
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
Hibernate:
@Column(name = "nombre")
private String nombre;
@OneToMany(mappedBy = "usuario")
private List<Orden> ordenes;
// Otros campos y métodos de acceso
}
Resumen:
@Repository: Capa de acceso a datos, manejo de excepciones específicas de
la base de datos.
@Component: Anotación base para componentes de Spring.
@Service: Capa de servicios de negocio.
@Controller: Capa de controladores para la presentación (en aplicaciones
Spring MVC).
@Repository:
- @Repository se utiliza para marcar las clases que interactúan con la capa de
persistencia (acceso a datos).
- Se aplica a las clases que actúan como repositorios de datos, generalmente
interfaces que extienden CrudRepository o JpaRepository
@Repository
public interface MiRepositorio extends JpaRepository<Entidad, Long> {
// Métodos de repositorio
}
@Component:
@Component
public class MiComponente {
// Código de la clase
}
@Service:
@Service
public class MiServicio {
// Lógica de negocio
}
@Controller:
@Controller
public class MiControlador {
// Lógica de controlador
}
Por ejemplo, supongamos que una aplicación tiene diferentes configuraciones de base de
datos para los entornos de desarrollo y producción. Podemos definir dos clases de
configuración diferentes, una para el entorno de desarrollo y otra para el entorno de
producción, y etiquetarlas con la anotación @Profile indicando los perfiles
correspondientes. Luego, en tiempo de ejecución, podemos activar el perfil deseado
mediante la configuración del entorno, como variables de entorno o propiedades de la
aplicación.
o @Configuration:
indica que la clase anotada es una fuente de definiciones de
beans para el contexto de la aplicación
Esto significa que la clase puede contener métodos anotados
con @Bean que definan y configuren los beans de la aplicación.
o @EnableAutoConfiguration:
Esta anotación activa la configuración automática de Spring
Boot.
pring Boot intentará automáticamente configurar la aplicación
basándose en las dependencias que se han agregado al proyecto
y las clases que se encuentran en el classpath.
o @ComponentScan:
Esta anotación escanea el paquete base de la aplicación y todos
los subpaquetes en busca de componentes anotados, como
@Component, @Service, @Repository y @Controller, entre otros
o Bootstrap de la aplicación:
proporciona un punto de entrada para la aplicación Spring Boot
Cuando se ejecuta una clase anotada con
@SpringBootApplication, Spring Boot inicia automáticamente la
aplicación, configurando el contexto de la aplicación y
arrancando el servidor embebido
- Factory Method: Spring hace un uso extensivo de los Factory Methods para
crear y configurar beans en el contexto de la aplicación. Los Factory Methods
permiten la creación de beans de forma dinámica y personalizada.
- Patrón Observer: Spring hace uso del patrón Observer a través de eventos de
aplicación. Los eventos en Spring permiten a los componentes de la aplicación
escuchar y responder a eventos específicos que ocurren dentro del contexto de
la aplicación.
La atomicidad es una propiedad de las transacciones que garantiza que todas las
operaciones dentro de la transacción se ejecuten con éxito o que ninguna se ejecute en
absoluto. Con @Transactional, si algo sale mal durante la ejecución de un método anotado,
Spring se asegura de revertir todas las operaciones realizadas dentro de la transacción,
devolviendo la base de datos a su estado inicial.
es un patrón de diseño en el que los objetos no crean directamente sus dependencias, sino
que se les proporcionan desde el exterior y Su objetivo principal es separar las
responsabilidades y reducir el acoplamiento entre componentes de una aplicación.
- 3- Inyección de Dependencias
@Service
public class MiServicio {
@Autowired
private MiRepositorio miRepositorio;
}
@Service
public class MiServicio {
private MiRepositorio miRepositorio;
@Autowired
public void setMiRepositorio(MiRepositorio miRepositorio) {
this.miRepositorio = miRepositorio;
}
}
@Service
public class MiServicio {
private final MiRepositorio miRepositorio;
@Autowired
public MiServicio(MiRepositorio miRepositorio) {
this.miRepositorio = miRepositorio;
}
}
17-¿ Para que se usa @Value y que lenguaje usa la anotación para su función ?
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class MiComponente {
@Value("${miapp.mensaje}")
private String mensaje;
Spring Actuator es un módulo de Spring Boot que proporciona una serie de herramientas
de monitoreo y administración para aplicaciones basadas en Spring Boot ademas
gestionaruna aplicación Spring Boot que este en produccion
ofrece endpoints HTTP listos para usar que proporcionan información sobre el estado de la
aplicación, la salud, las métricas, la información de la configuración, entre otros aspectos
importantes.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Una vez agregada la dependencia, los endpoints de Actuator estarán disponibles para su
uso en tu aplicación Spring Boot. Puedes acceder a estos endpoints a través de HTTP para
obtener información sobre el estado y el rendimiento de tu aplicación en tiempo de
ejecución.
Además de estos componentes, Spring Cloud ofrece una amplia gama de funcionalidades
adicionales, como la detección de servicios, el equilibrio de carga, la seguridad, la
tolerancia a fallos y la gestión de la latencia, todo ello diseñado para simplificar el
desarrollo y la operación de aplicaciones distribuidas en entornos de nube.