2016-06-18 2 views
0

--Appconfig.java는 @componentScan (스프링 JavaConfig의 @annotaion)

@Configuration 
public class AppConfig {  

    @Bean(name="helloBean") 
    public HelloWorld helloWorld() { 
    return new HelloWorldImpl(); 
    } 
} 

--interface.java

public interface HelloWorld { 
    void printHelloWorld(String msg); 
} 

--ipml.java

public class HelloWorldImpl implements HelloWorld { 
public void printHelloWorld(String msg) { 
    System.out.println("Hello! : " + msg); 
    -- 
} 
없이 작업을 @Configuration 수

--App.java

public class App { 

public static void main(String[] args) { 

    AnnotationConfigApplicationContext context = new 
    new AnnotationConfigApplicationContext(AppConfig.class); 

HelloWorld obj = (HelloWorld) context.getBean(HelloWorldImpl.class); 

obj.printHelloWorld("Spring3 Java Config"); 
    } 
} 

내 프로그램이 작동 할 수 있지만 Appconfig.java에 @componentScan을 추가 할 필요가없는 이유가 내 질문입니다.

@Configuration@Bean은 봄철에 @componentScan을 사용하여 찾을 수 있습니다.

난 당신이 @annotation을 사용하려는 경우, 당신은 @componentScan를 사용해야하거나

context:component-scan(xml)

이 내가에게 맞다 생각

?

답변

1

@ComponentScan@Component으로 모든 구성 요소를 스프링에서 자동으로 스캔 할 수 있습니다. Spring은 컴포넌트를 찾을 위치를 나타내는 base-package 속성을 사용한다.

@Configuration@Component으로 메타 주석이 첨부되어 있으며 클래스 경로 검색에 적합하다고 표시됩니다. 이 모든 콩을 명시 적으로 봄의 만남이 주석 때 만들어집니다로 @ComponentScan이 필요하지 않습니다

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); 

@Bean

를 사용할 때

@Configuration (appconfig가 클래스)이 등록됩니다.

+0

고맙습니다. –

관련 문제