[SPRING] 나는 열거 봄의 @Component를 할 수 있습니까?
SPRING나는 열거 봄의 @Component를 할 수 있습니까?
내 implementatons 중 하나에 대한 열거 싱글 톤 패턴 다음 봄 3.0.x 버전을 사용하고 있습니다.
public enum Person implements Nameable {
INSTANCE;
public String getName(){
// return name somehow (Having a variable but omitted for brevity)
}
}
최근에 우리는 내 클래스에 @Component를 추가해야하므로 스프링을 통해 그 유형을 수집하기 시작했다.
@Component
public enum Person implements Nameable {
INSTANCE;
public String getName(){
// return name somehow (Having a variable but omitted for brevity)
}
}
및 수집 방법은
@Autowired
public void collectNameables(List<Nameable> all){
// do something
}
이 일 후에 내가 실패를 관찰하고 원인은 봄 (이해할 수있는) 열거 형 클래스를 초기화하기 수 있었다. 내 질문은 - 나는 빈으로 내 열거 클래스를 표시 할 수있는 다른 방법 usign이 있습니까? 아니면 내가 내 구현을 변경해야?
해결법
-
==============================
1.당신이 정말로 (봄 콩은 기본적으로 싱글이 있다는 사실에도 불구하고) ENUM 기반의 싱글을 사용해야하는 경우, 당신은 Spring 컨텍스트에서 해당 콩을 등록하는 다른 방법을 사용해야합니다. 예를 들어, XML 구성을 사용할 수 있습니다 :
당신이 정말로 (봄 콩은 기본적으로 싱글이 있다는 사실에도 불구하고) ENUM 기반의 싱글을 사용해야하는 경우, 당신은 Spring 컨텍스트에서 해당 콩을 등록하는 다른 방법을 사용해야합니다. 예를 들어, XML 구성을 사용할 수 있습니다 :
<util:constant static-field="...Person.INSTANCE"/>
또는의 FactoryBean을 구현 :
@Component public class PersonFactory implements FactoryBean<Person> { public Person getObject() throws Exception { return Person.INSTANCE; } public Class<?> getObjectType() { return Person.class; } public boolean isSingleton() { return true; } }
-
==============================
2.당신은 당신이 의존성 주입을 관리하기 위해 스프링을 사용하는 경우 열거 싱글 톤 패턴을 사용할 필요가 없습니다. 당신은 일반 클래스로 사람을 변경할 수 있습니다. 봄은 그래서 모든 봄 주입 오브젝트가 같은 인스턴스를 얻을 것이다, 싱글의 기본 범위를 사용합니다.
당신은 당신이 의존성 주입을 관리하기 위해 스프링을 사용하는 경우 열거 싱글 톤 패턴을 사용할 필요가 없습니다. 당신은 일반 클래스로 사람을 변경할 수 있습니다. 봄은 그래서 모든 봄 주입 오브젝트가 같은 인스턴스를 얻을 것이다, 싱글의 기본 범위를 사용합니다.
from https://stackoverflow.com/questions/5802634/can-i-have-springs-component-on-enum by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 왜 나는이 봄 부팅 응용 프로그램에서 다중 업로드를 처리 할 수 없습니다? 내가 얻을 "일치 편집자 또는 전환 전략은 찾을 수 없습니다" (0) | 2019.10.18 |
---|---|
[SPRING] Thymeleaf 봄 부팅 프로젝트 내부의 템플릿을 검색 할 수 없습니다 (0) | 2019.10.18 |
[SPRING] 봄 부팅 응용 프로그램은 단지 6 개 요청 왜 받아? (0) | 2019.10.18 |
[SPRING] 스프링 배치를 사용하여 HDFS에서 파일 읽기 (0) | 2019.10.18 |
[SPRING] 봄 부팅과 '액세스 제어 - 허용 - 원산지' (0) | 2019.10.18 |