SeouliteLab

[Java/자바] Spring @Component에 대한 자세한 설명과 예제 본문

프로그래밍

[Java/자바] Spring @Component에 대한 자세한 설명과 예제

Seoulite Lab 2024. 3. 12. 10:54

Spring 프레임워크에서 @Component 어노테이션은 컴포넌트 스캔을 통해 해당 클래스를 빈으로 등록하는 데 사용됩니다. 이 글에서는 @Component 어노테이션의 사용법과 예제 코드를 통해 자세히 알아보겠습니다.

1. 기본적인 @Component 사용법

가장 간단한 형태의 @Component 어노테이션은 다음과 같이 클래스에 붙여서 사용합니다.

package com.example.components;

import org.springframework.stereotype.Component;

@Component
public class MyComponent {
    // 클래스 내용
}

위의 예제에서 MyComponent 클래스는 @Component 어노테이션을 통해 스프링 빈으로 등록됩니다. 스프링 컨테이너가 구동될 때 해당 클래스가 빈으로 등록되며, 이후 다른 빈에서 이를 주입받아 사용할 수 있습니다.

2. @Component와 함께 사용되는 다른 어노테이션

때로는 @Component 어노테이션과 함께 다른 스프링 관련 어노테이션들과 함께 사용됩니다. 예를 들어, @Autowired를 사용하여 의존성을 주입할 때 자주 볼 수 있습니다.

package com.example.components;

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

@Component
public class MyComponent {
    private AnotherComponent anotherComponent;

    @Autowired
    public MyComponent(AnotherComponent anotherComponent) {
        this.anotherComponent = anotherComponent;
    }

    // 클래스 내용
}

@Component
public class AnotherComponent {
    // 클래스 내용
}

위의 예제에서 MyComponent 클래스는 AnotherComponent 클래스를 주입받기 위해 @Autowired 어노테이션을 사용합니다.

3. @ComponentScan 설정

스프링은 @ComponentScan 어노테이션을 사용하여 어느 패키지부터 컴포넌트를 스캔할지 설정할 수 있습니다. 기본적으로는 해당 어노테이션이 사용된 클래스가 위치한 패키지부터 시작합니다.

package com.example;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.example.components")
public class AppConfig {
    // 설정 내용
}

위의 예제에서 AppConfig 클래스는 @ComponentScan 어노테이션을 사용하여 com.example.components 패키지부터 컴포넌트를 스캔하도록 설정합니다.

4. 예제 코드

다음은 @Component 어노테이션을 사용한 예제 코드입니다.

예제 1: 기본적인 @Component 사용법

package com.example.components;

import org.springframework.stereotype.Component;

@Component
public class MyComponent {
    // 클래스 내용
}

예제 2: @Component와 함께 사용되는 다른 어노테이션

package com.example.components;

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

@Component
public class MyComponent {
    private AnotherComponent anotherComponent;

    @Autowired
    public MyComponent(AnotherComponent anotherComponent) {
        this.anotherComponent = anotherComponent;
    }

    // 클래스 내용
}

@Component
public class AnotherComponent {
    // 클래스 내용
}

예제 3: @ComponentScan 설정

package com.example;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.example.components")
public class AppConfig {
    // 설정 내용
}

5. 결론

이상으로 Spring의 @Component 어노테이션에 대한 자세한 설명과 예제 코드를 살펴보았습니다. @Component 어노테이션을 사용하여 스프링 애플리케 이션을 구성할 때 유용하게 활용할 수 있습니다.