본문 바로가기

Spring_SpringBoot/이론

스프링부트 어노테이션 ☏

스프링 컨테이너를 위한 XML 환경설정 파일 작성하지 않는다.

 

스프링 부트가 기본적으로 모든 빈(Bean)설정을 XML이 아닌 어노테이션(Annotation)으로 처리하기 때문이다.

 

※ Bean

- (Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다. 

즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다.

→ 기존 SI프로젝트에서는 Annotation보다는 XML을 통해서 처리하는 것이 많았다.

 

※ 어노테이션(Annotation)

정의 : 자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다.

즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다.

 

기본적으로 어노테이션을 사용하는 순서는 다음과 같다.

1. 어노테이션을 정의한다.

2. 클래스에 어노테이션을 배치한다.

3. 코드가 실행되는 중에 Reflection을 이용하여 추가 정보를 획득하여 기능을 실시한다.

 

Annotation 종류

1) @Component

@Component은 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 Annotation이다.

 

Component에 대한 추가 정보가 없다면 Class의 이름을 camelCase로 변경한 것이 Bean id로 사용된다.

 

하지만 @Bean과 다르게 @Component는 name이 아닌 value를 이용해 Bean의 이름을 지정한다.

 

2) @Bean

개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용하는 Annotation이다.

 

ex)

@Configuration
public class ApplicationConfig {    
    @Bean(name="myarray")
    public ArrayList<String> array(){
        return new ArrayList<String>();
    }   
}

 

이렇게 되면 ArrayList<String>의 객체가 myarray가 되는 것이다.

 

3) @AutoWired

속성(field), setter method, constructor(생성자)에서 사용하며 Type에 따라 알아서 Bean을 주입 해준다.

 Annotation을 사용할 시, 스프링이 자동적으로 값을 할당한다.
Controller 클래스에서 DAO나 Service에 관한 객체들을 주입 시킬 때 많이 사용한다.

 

등등 Controller와 RestController과 같은 것은 생략....