[SPRING] Spring의 @Configuration과 @Component의 차이점은 무엇입니까?
SPRINGSpring의 @Configuration과 @Component의 차이점은 무엇입니까?
@ComponentScan은 @Configuration과 @Component를 사용하여 Bean을 작성합니다. 이러한 주석은 모두 바뀌면 잘 작동합니다. 그 때의 차이점은 무엇입니까?
해결법
-
==============================
1.여기에서 더 많은 것을 볼 수 있습니다.
여기에서 더 많은 것을 볼 수 있습니다.
http://docs.spring.io/spring-framework/docs/4.0.4.RELEASE/javadoc-api/org/springframework/context/annotation/Configuration.html
@Configuration은 @Component이지만 @Component는 @Cofinguration처럼 작동 할 수 없습니다.
-
==============================
2.실제로 대답은 완전하지 않습니다. 사실입니까?
실제로 대답은 완전하지 않습니다. 사실입니까?
하지만 당신은 MyConfiguration.java 클래스를 생성하고 @Component로 스테레오 타입을 만들고 @Beans 선언을 추가 할 수 있습니다. 이런 식으로 구성으로 보일 것입니다. 주요 차이점은 @Configuration @Bean으로 주석 된 클래스가 주석 처리 된 메소드입니다. 첫 번째 메소드 다음에 코드 호출로 작성된 CGLIB를 사용하는 프록시는 메소드를 다시 실행하지 않고 컨텍스트에서 bean을 리턴하고 다른 메소드를 작성합니다. @Component를 @Bean과 함께 사용하면 인스턴스가 생성됩니다.
-
==============================
3.@Configuration - beans.xml과 비슷하지만 자바 기반의 빈 설정이다. 이는이 주석으로 주석 된 클래스가 자동 감지를위한 후보가 될 빈이 구성되는 장소임을 의미합니다. 이 클래스에서 메소드는 클래스의 객체를 반환하는 @Bean으로 주석 처리됩니다.
@Configuration - beans.xml과 비슷하지만 자바 기반의 빈 설정이다. 이는이 주석으로 주석 된 클래스가 자동 감지를위한 후보가 될 빈이 구성되는 장소임을 의미합니다. 이 클래스에서 메소드는 클래스의 객체를 반환하는 @Bean으로 주석 처리됩니다.
예:
@Configuration public class ConfigClass { @Bean public UserClass getObject() { return new UserClass(); } }
@Component - @Component로 표시되어 있지 않은 클래스는 autowire (@Autowire) 할 수 없습니다. 이는 클래스가 @Component로 주석을 달아야하는 주석을 사용하여 모든 클래스를 자동 와이어 링하려는 경우를 의미합니다.
예:
@Component public class A { .... } public class B { @Autowire A a; ..... ..... }
참조 용 봄 문서 : https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html
-
==============================
4.reos가 강조한 차이점은 별개입니다.
reos가 강조한 차이점은 별개입니다.
@Configuration을 @Component로 대체 할 수없는 이유는 다음과 같습니다.
차이점은 inter bean 의존성이 어떻게 처리되는지에있다. 자세한 설명은 예를 들어 링크를 참조하십시오. 구성과 구성 요소의 차이점
from https://stackoverflow.com/questions/39174669/what-is-the-difference-between-configuration-and-component-in-spring by cc-by-sa and MIT license