반응형

@Configuration

 

한 개 이상의 @Bean을 제공하는 클래스에 명시하는 어노테이션으로, IOC Container에게 해당 클래스가 Bean으로 구성된 클래스라는 것을 알려줍니다.

 

@Bean

 

개발자가 직접 제어할 수 없는 외부 라이브러리들을 Bean으로 만들 때 사용합니다.

 

@Configuration
public class SpringConfig {

    @Bean
    public MemberService memberService() {
        return new MemberService(memberRepository());
    }

    @Bean
    public MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }
}

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


@Autowired

 

필드, 생성자, 수정자 메소드에 사용하는 어노테이션으로, 무조건적인 객체에 대한 의존성을 주입시킵니다.

 

@Component

 

Java Bean에 등록하지 않아도 자동 주입이 가능하도록 해주는 어노테이션입니다. 개발자가 직접 개발한 클래스를 Bean에 등록할 경우 @Component 어노테이션을 사용하면 됩니다.

 

@Controller에 @Component가 명시되어 있습니다.

 

@Autowired

 

스프링에서 빈 인스턴스가 생성된 후, @Autowired로 설정된 메소드, 필드가 자동으로 호출됩니다.

 

@Controller

 

해당 클래스가 Controller임을 명시합니다. @Component 어노테이션을 사용해도 상관 없지만 @Cotroller 어노테이션에 @Component 어노테이션의 기능이 포함되어 있고 @Controller를 사용함으로써 해당 클래스가 Controller 역할을 하는 것을 명확하게 알 수 있습니다.

 

@Controller
public class MemberController {

    private final MemberService memberService;

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }
}

 

@Service

 

해당 클래스가 비즈니스 로직을 담은 Service 클래스임을 명시합니다. @Component 어노테이션을 사용해도 상관 없지만 @Sevice 어노테이션에 @Component 어노테이션의 기능이 포함되어 있고 @Service를 사용함으로써 해당 클래스가 Service의 역할을 하는 것을 명확하게 알 수 있습니다.

 

@Repository

 

해당 클래스가 Repository임을 명시합니다. @Component 어노테이션을 사용해도 상관 없지만 @Repository 어노테이션에 @Component 어노테이션의 기능이 포함되어 있고 @Repository를 사용함으로써 해당 클래스가 Repositorydml 역할을 하는 것을 명확하게 알 수 있습니다.

반응형

+ Recent posts