Mam problem do rozwiązania: 1) nasz projekt korzysta z metody Spring JavaConfig (więc nie ma plików xml) 2) Potrzebuję utworzyć niestandardowy zakres, przykład w formacie xml wygląda tak :Wiosna JavaConfig, niestandardowe zakresy i adnotacje dla fasoli
<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>
wyobraziłem go z JavaConfig będzie to wygląda mniej więcej tak:
@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;
}
Popraw mi, f Myliłem się z moim założeniem.
3) muszę opisywać moją klasę coś jako @Component (zakres = „workflow”) ponownie xml konfiguracja będzie wyglądać następująco:
<bean id="activitiesClient" class="aws.flow.sample.MyActivitiesClientImpl" scope="workflow"/>
Więc w zasadzie pytanie - mam rację z moim założenie użycia @Component (scope = "workflow") lub oczekuje się, że będzie w jakiś inny sposób?
Dzięki
Właśnie dostałem ostrzeżenie 'metody @Bean getWorkflowScope jest niestatyczny i zwraca obiekt przypisany do interfejsu Springa BeanFactoryPostProcessor. Spowoduje to niepowodzenie w przetwarzaniu adnotacji, takich jak @Aewowised, @Resource i @PostConstruct w deklarującej metodę klasie @Configuration. Dodaj "statyczny" modyfikator do tej metody, aby uniknąć problemów związanych z cyklem życiowym kontenera. Tylko dla FYI, Twoja metoda powinna odczytywać '@' Bean public ** static ** CustomScopeConfigurer –