• Saltar a la navegación principal
  • Saltar al contenido principal

CARLOSZR.COM

Mi blog personal, CarlosZR

  • Blog
  • Contacto
  • Curso de SwiftUI por CarlosZR

Curso Spring Boot y Angular / 12/08/2019

Definir un nuevo Bean en Spring

Para definir un nuevo bean en Spring tenemos dos opciones:

  • Podemos definir explícitamente un nuevo bean mediante la anotación @Bean.
  • Podemos marcar una clase Java como un bean, y permitir a Spring que lo descubra, esto se hace mediante el escaneo de componentes.

Estas son dos técnicas diferentes para añadir beans a nuestro contexto.

Una clase con la anotación @Component es un candidato a ser escaneado mediante el proceso de negociación, e instanciado como un bean y añadido al contexto.

Actualmente nunca definimos el escaneo de componentes. Spring Boot ya se encarga de que esta funcionalidad esté disponible. Nuestra aplicación esta anotada mediante la anotación @SpringBootApplication.

Si nos fijamos en la anotación @SpringBootApplication y abrimos su clase para verla (SpringBootApplication.class), vemos que hace uso de la anotación @ComponentScan:

SpringBootApplication
SpringBootApplication

Esto hace un escaneo de todos los componentes que se encuentren BAJO la misma estructura de paquetes en que hemos usado la aplicación @SpringBootApplication.

Esto puede tener su parte mala, ya que puede que haya componentes que no queremos que sean escaneados. En ese caso debemos usar otras medidas. Exceptuando esto, hace que nuestro trabajo sea mucho más cómodo y simple.

¿Y si queremos escanear un paquete en concreto?

Si no queremos escanear todos los componentes, si queremos escanear los componentes de un paquete en concreto podemos usar una opción de la anotación: scanBasePackages. Veamos cómo podemos usar scanBasePackages.

@SpringBootApplication(scanBasePackages = "com.carlos.app.paquete")

Entonces el escaneo de componentes va a estar únicamente en el paquete que hemos indicado.

Definiendo un Bean mediante @Repository

Como ya hemos visto, podemos definir un @Bean mediante el uso de la anotación @Component, siempre que se encuentre bajo el alcance de @SpringBootApplication. Sin embargo, podemos usar una anotación más adecuada para definir el Bean. Estamos hablando de la anotación @Repository. Evidentemente, esta anotación la usaremos cuando queramos anotar una clase del tipo Repository.

@Repository
public class ProyectoRepositoryImpl implements IProyectoRepository {
   //Métodos
}

La anotación @Repository, implementa ya la anotación @Component. Además, encaja mejor con nuestra situación en particular.

Como podemos ver, la clase Repository.class hace uso de la anotación @Component:

Clase Repository en Spring
Clase Repository en Spring

Si te gusta la informática, puedes oír noticias y nuestras opiniones en nuestro 👉 Podcast de informática Brecha Digital.

Publicado en: Curso Spring Boot y Angular Etiquetado como: bean, component

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carlos ZR

  • Sígueme en Twitter
  • Política de Cookies
  • Política de Privacidad
  • Aviso Legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los ajustes.

CARLOSZR.COM
Powered by  GDPR Cookie Compliance
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.