Backend/Spring

Spring에서 컴포넌트 스캔과 의존관계 자동 주입 해보기

Chung-A 2023. 10. 29. 23:10

Spring 프레임워크는 Java 및 Kotlin과 같은 언어로 웹 응용 프로그램 및 엔터프라이즈 애플리케이션을 빌드하는 데 사용되는 강력한 도구 중 하나입니다.

이 블로그 글에서는 Spring의 중요한 기능 중 하나인 컴포넌트 스캔과 의존관계 자동 주입에 초점을 맞출 것입니다.

 

 

Spring 프로젝트 설정

Spring 프레임워크를 시작하기 위해서는 프로젝트 구성 및 의존성 관리가 필요합니다.

Spring Boot를 사용한다면 스프링 부트 스타터 의존성을 프로젝트에 추가할 수 있습니다.

아래는 Maven을 사용하는 Java 프로젝트의 pom.xml 예시입니다.

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

Gradle을 사용한다면 build.gradle 파일에서 의존성을 관리할 수 있습니다.

 

컴포넌트 스캔 설정

Spring은 컴포넌트 스캔을 통해 애플리케이션 내의 컴포넌트를 자동으로 찾아서 빈으로 등록합니다.

이를 위해 @Component, @Service, @Repository와 같은 어노테이션을 사용합니다.

 

예를 들어, 다음은 @Service 어노테이션을 사용한 Java 클래스입니다

import org.springframework.stereotype.Service;

@Service
public class MyService {
    // Service 내용
}

 

Spring은 클래스 경로에서 이런 어노테이션이 있는 클래스들을 찾아서 빈으로 등록합니다.

 

의존관계 자동 주입

Spring은 의존성 주입을 자동화하는 데 큰 역할을 합니다.

이를 위해 @Autowired 어노테이션을 사용하여 의존성을 주입합니다.

 

예를 들어, 다음은 @Autowired를 사용한 Java 클래스 내의 의존성 주입 예제입니다:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MyService {
    private final MyRepository repository;

    @Autowired
    public MyService(MyRepository repository) {
        this.repository = repository;
    }
}

Spring은 MyService가 MyRepository를 필요로 하는 것을 감지하고, MyRepository 빈을 주입합니다.

 

설정 파일 없이의 자동화

주요 장점 중 하나는 설정 파일 없이도 Spring이 컴포넌트 스캔 및 의존성 주입을 자동화한다는 점입니다.

이렇게 하면 빠르게 개발할 수 있으며, 코드 베이스가 더 간결해집니다.

 

 


이번 블로그에서는 간단한 사용법에 대해서만 알아보았습니다.

 

Spring에서 컴포넌트 스캔과 의존관계 자동 주입을 통해 애플리케이션을 보다 효율적으로 개발할 수 있습니다.

이러한 Spring의 핵심 기능은 코드를 정리하고 개발 생산성을 향상시키는데 큰 도움이 됩니다.

실무에서는 이러한 개념을 활용하여 실제 애플리케이션을 개발하면서 더 많은 경험을 쌓게 될 것입니다.