섭섭한 개발일지

[TIL] Spring의 어노테이션 본문

멋쟁이사자처럼/TIL

[TIL] Spring의 어노테이션

Seop 2023. 11. 6. 19:02

참고

Configuration

Configuration은 구성이라는 뜻을 가지고 있다.

클래스에 해당 어노테이션을 사용하게 되면 해당 클래스는 XML 설정을 대체하는 스프링의 구성 클래스가 된다.

@Configuration 어노테이션이 선언된 클래스는 Bean 설정을 담당하며, 다음과 같이 사용됩니다

@Configuration
public class ConfigEx{
}

Bean은 스프링 컨테이너에서 관리되는 객체를 의미합니다. @Configuration으로 표시된 클래스에서 @Bean 어노테이션을 사용하여 Bean을 정의할 수 있다.

Bean

스프링 Bean은 스프링 컨테이너에서 관리되는 객체를 말한다.

기존 Java에서는 객체를 사용하기 위해서는 new 키워드를 통해 직접 객체를 생성해야 하지만

Bean을 등록하게 되면 Spring에 의해서 자동으로 생성되고 관리가 된다 이를 Bean라고 말한다.

빈의 사용 형태는 아래와 같다

@Configuration
public class HelloConfiguration {
    @Bean
    public HelloController sampleController() {
        return new SampleController;
    }
}

Component

Component는 Bean과 큰 차이는 없다.

Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 등록할 때 사용하지만

Component는 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션이다.

@Component
public class ComponentEx {    
	public ComponentEx() {        
		System.out.println("ComponentEx Test");    
	}
}

위 코드와 같이 개발자가 직접 생성한 클래스를 Bean에 등록할 때 사용하게 된다.

Autowired

Component를 사용한 Bean의 의존성 주입은 Autowired를 이용할 수 있다.

아래 코드를 먼저 보자

@Component
public class ComponentEx {
	public ComponentEx() {        
		System.out.println("ComponentEx Test");    
	}
}

@Component(value="mycomponent")
public class AutowiredEx(){
	@Autowired
	private ComponentEx com;
}

위에서 사용한 ComponentEx를 이용해 Autowired를 보면

AutowiredEx 클래스에서 ComponentEx를 선언할 때 초기화를 하지 않고 어노테이션을 사용했다.

이렇게 사용을 하게 되면 의존성 주입을 직접하지 않아도 spring에서 자동으로 의존성을 주입하여 사용할 수 있게된다.

'멋쟁이사자처럼 > TIL' 카테고리의 다른 글

[TIL] 스프링부트 테스트 데이터 넣기  (0) 2023.11.21
[TIL] Java 체인호출  (0) 2023.11.08
[TIL] MySQL GROUP BY, HAVING  (0) 2023.11.01
[TIL] MySQL 간단한 명령어  (0) 2023.11.01
[TIL] 자바의 상속  (0) 2023.10.23
Comments