La anotación @Resource en Spring Boot se utiliza para inyectar dependencias en un bean de manera similar a @Autowired. Sin embargo, @Resource permite una mayor personalización al permitir la inyección de beans según su nombre. Es parte de javax.annotation y proporciona un método estándar de Java para la inyección de dependencias, facilitando la integración con otros frameworks que no sean específicos de Spring.
La anotación @Resource se puede aplicar a campos, setters y métodos de un bean. A diferencia de @Autowired, que selecciona las dependencias por tipo, @Resource se centra en el nombre del bean por defecto, aunque también se puede configurar para buscar por tipo.
@Resource sin nombre, Spring intentará inyectar un bean que coincida con el nombre del atributo.
@Autowired.
name para indicar explícitamente el nombre del bean que se quiere inyectar.
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
public class MiServicio {
@Resource(name = "miRepositorio")
private Repositorio repositorio;
public void ejecutarServicio() {
System.out.println("Iniciando servicio...");
repositorio.realizarOperacion();
}
}
import org.springframework.stereotype.Repository;
@Repository("miRepositorio")
public class Repositorio {
public void realizarOperacion() {
System.out.println("Operación realizada en el repositorio.");
}
}
1. El atributo repositorio de la clase MiServicio se inyecta usando @Resource(name = "miRepositorio").
2. La anotación especifica el nombre exacto del bean Repositorio que se debe inyectar, permitiendo un control más fino en la inyección de dependencias.
3. Al ejecutar ejecutarServicio(), Spring Boot inyecta automáticamente el bean miRepositorio en repositorio, y el método realizarOperacion() se llama sin problemas.
Para más información, consulta la documentación oficial de Spring.
Jorge García
Fullstack developer