@Configuration, @Component

아래 예시를 보면 AppConfig.class@Configuration 로 설정되어 클래스 및 클래스 내부에 선언된 @Bean 메서드들이 빈으로 설정된다. 기타 .class파일들은 각 의존성을 지니고 있는 클래스를 @Autowired 로 표현하여 스프링 컨테이너에 빈 정의를 등록하도록 한다.

public static void main(String[] args) {
    ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
    MyService myService = ctx.getBean(MyService.class);
    myService.doStuff();
}
public static void main(String[] args) {
    ApplicationContext ctx = new AnnotationConfigApplicationContext(MyServiceImpl.class, Dependency1.class, Dependency2.class);
    MyService myService = ctx.getBean(MyService.class);
    myService.doStuff();
}

@Configuration으로 빈 정의 설정하기