[spring] @Component로 클래스에 주석을 달 때 이것이 Spring Bean과 Singleton임을 의미합니까?

Spring을 처음 접하기 때문에 클래스 주석 달기에 대한 질문이 있습니다. 클래스에 주석을 달 때 @Component이것은이 클래스가 Spring Bean이고 기본적으로 싱글 톤임을 의미합니까?



답변

예, 맞습니다 @Component. Spring bean과 Singleton입니다.

클래스가 서비스 계층에 속하는 경우 @Service대신 주석을 달 수 있습니다.

그러나 이러한 주석을 감지하려면이 줄을 applicationContext.xml다음 위치에 배치해야합니다 .

<context:component-scan base-package="com.yourcompany" />

싱글 톤 정보-스프링 빈은 기본적으로 모두 싱글 톤 범위에 있습니다. 유일하게 염두에 두어야 할 것은 필드 변수에 상태를 저장하지 않아야한다는 것입니다 (종속성 만 보유해야 함). 따라서 애플리케이션은 스레드로부터 안전하며 매번 빈의 새 인스턴스가 필요하지 않습니다. 즉, 당신의 콩은 무국적자입니다.


답변

기본적으로-예.

그러나 @Scope주석을 사용하여이 동작을 재정의 할 수 있습니다 . 예를 들면 :@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)


답변