[SPRING] Spring JavaConfig, Bean의 커스텀 스코프 및 주석
SPRINGSpring JavaConfig, Bean의 커스텀 스코프 및 주석
해결해야 할 문제가 있습니다. 1) 우리 프로젝트는 Spring JavaConfig 접근 방식을 사용하므로 XML 파일은 없습니다. 2) 사용자 지정 범위를 만들어야합니다 .xml의 예는 다음과 같습니다.
<bean class="org.springframework.beans.factory.config.CustomScopeConfigurer">
<property name="scopes">
<map>
<entry key="workflow">
<bean
class="com.amazonaws.services.simpleworkflow.flow.spring.WorkflowScope" />
</entry>
</map>
</property>
JavaConfig를 사용하여 다음과 같이 보입니다.
@Bean
public CustomScopeConfigurer customScope () {
CustomScopeConfigurer configurer = new CustomScopeConfigurer ();
Map<String, Object> workflowScope = new HashMap<String, Object>();
workflowScope.put("workflow", new WorkflowScope ());
configurer.setScopes(workflowScope);
return configurer;
}
내 가정이 틀렸다면 나를 바로 잡으십시오.
3) 클래스에 @Component (scope = "workflow")로 주석을 달아야합니다. 다시 xml 구성은 다음과 같습니다.
<bean id="activitiesClient" class="aws.flow.sample.MyActivitiesClientImpl" scope="workflow"/>
그래서 기본적으로 질문은-@Component (scope = "workflow")를 사용하는 것으로 가정합니까? 아니면 다른 방법으로 예상됩니까?
감사
해결법
-
==============================
1.주석 @Scope를 사용해야합니다. 이처럼 :
주석 @Scope를 사용해야합니다. 이처럼 :
@Scope("workflow")
사용자 지정 범위 한정자를 만들 수도 있습니다.
@Qualifier @Scope("workflow") @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) public @interface WorkflowScoped { }
이 방법으로 사용하십시오 :
@Component @WorkflowScoped class SomeBean
from https://stackoverflow.com/questions/15435860/spring-javaconfig-beans-custom-scopes-and-annotations by cc-by-sa and MIT license