Framework Java Spring

Java 常用类库Librerías comunes de Java


Spring es un framework de desarrollo de aplicaciones empresariales Java de código abierto, creado por Rod Johnson en 2003. Proporciona un modelo integral de programación y configuración para construir aplicaciones Java modernas.

Características centrales del framework Spring:

  • Ligero: El contenedor central de Spring es muy pequeño
  • Inyección de dependencias (DI): Gestiona las dependencias de objetos mediante el contenedor de IoC (Inversión de Control)
  • Programación Orientada a Aspectos (AOP): Soporta la modularización de preocupaciones transversales
  • Solución integral: Proporciona módulos para acceso a datos, gestión de transacciones, desarrollo web, etc.

Módulos centrales del framework Spring

1. Contenedor central (Core Container)

El contenedor central es la base del framework Spring e incluye:

  • Beans: Proporciona BeanFactory e implementa el patrón de inversión de control
  • Core: Clases de utilidades básicas del framework
  • Context: Se basa en los módulos Core y Beans, y proporciona una forma de acceso a objetos de tipo framework
  • SpEL: Spring Expression Language

2. Acceso a datos/Integración (Data Access/Integration)

  • JDBC: Simplifica el uso de JDBC
  • ORM: Soporta frameworks ORM como Hibernate, JPA, etc.
  • JMS: Soporte para Java Message Service
  • Transactions: Gestión declarativa de transacciones

3. Módulo Web

  • Web: Funcionalidades web básicas
  • Web-MVC: Framework web que implementa el patrón de diseño MVC
  • Web-Socket: Soporte WebSocket
  • Web-Flux: Framework web reactivo

4. Otros módulos importantes

  • AOP: Soporte para programación orientada a aspectos
  • Aspects: Integración con AspectJ
  • Instrumentation: Implementación de cargadores de clases y soporte para detección de clases
  • Test: Soporta frameworks de pruebas JUnit y TestNG

Conceptos centrales de Spring

1. Inversión de Control (IoC) e Inyección de Dependencias (DI)

IoC es un concepto central de Spring; transfiere la creación de objetos y la gestión de dependencias del código de la aplicación al contenedor.

Ejemplo

// Método tradicional
public class UserService {
    private UserRepository userRepository = new UserRepositoryImpl();
}

// Método DI de Spring
public class UserService {
    private UserRepository userRepository;
   
    // Inyección mediante constructor
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

2. Programación Orientada a Aspectos (AOP)

AOP permite separar las preocupaciones transversales (como registro, transacciones, seguridad, etc.) de la lógica de negocio.

Ejemplo

@Aspect
@Component
public class LoggingAspect {
   
    @Before("execution(* com.example.service.*.*(..))")
    public void logBefore(JoinPoint joinPoint) {
        System.out.println("Antes de ejecutar el método: " + joinPoint.getSignature().getName());
    }
}

3. Spring Bean

Los objetos administrados por el contenedor de Spring se denominan Beans. Los Beans se pueden definir mediante configuración XML o mediante anotaciones.

Ejemplo

// Definir Bean mediante anotaciones
@Component
public class MyService {
    // ...
}

// Método de configuración XML
<bean id="myService" class="com.example.MyService"/>

Introducción a Spring Boot

Spring Boot es una extensión del framework Spring, diseñada para simplificar la configuración inicial y el proceso de desarrollo de aplicaciones Spring.

Características principales de Spring Boot:

  • Configuración automática: Configura automáticamente aplicaciones Spring según los archivos jar en el classpath
  • Dependencias de inicio (Starter): Simplifica la gestión de dependencias
  • Servidor integrado: No requiere implementar archivos WAR
  • Actuator: Proporciona funciones de monitoreo de nivel de producción

Crear una aplicación simple de Spring Boot:

Ejemplo

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

@RestController
class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

Ventajas del framework Spring

  1. Diseño modular: Puedes elegir qué módulos usar según sea necesario
  2. Desarrollo simplificado: Reduce el código repetitivo mediante DI y AOP
  3. Amigable con las pruebas: La testabilidad se consideró desde el diseño
  4. Ecosistema potente: Amplia variedad de librerías y extensiones de terceros
  5. Comunidad activa: Actualización y mantenimiento continuos

Haz clic para compartir notas

  1. Primero domina los conocimientos básicos de Java
  2. Aprende los conceptos de Spring Core y DI/AOP
  3. Practica el desarrollo de aplicaciones web con Spring MVC
  4. Aprende Spring Data para realizar operaciones de base de datos
  5. Domina Spring Boot para simplificar el proceso de desarrollo
  6. Explora Spring Cloud para construir microservicios

El framework Spring es la base del desarrollo moderno en Java; dominarlo mejorará enormemente tu eficiencia de desarrollo y la calidad de tus proyectos.

Java 常用类库Librerías comunes de Java

Otras extensiones