ho un problema da risolvere: 1) il nostro progetto sta usando approccio Primavera JavaConfig (in modo che nessun file XML) 2) ho bisogno di creare ambito personalizzato, ad esempio in XML assomiglia a questo :Primavera JavaConfig, fagioli di ambiti personalizzati e annotazioni
<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>
ho capito con JavaConfig lo farà simile a questa:
@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;
}
Correggetemi i f Ho sbagliato con la mia ipotesi.
3) Ho bisogno di annotare la mia classe qualcosa di @Component (portata = "workflow") configurazione di nuovo xml sarebbe simile a questa:
<bean id="activitiesClient" class="aws.flow.sample.MyActivitiesClientImpl" scope="workflow"/>
Quindi, fondamentalmente la domanda è - dico bene con la mia ipotesi di usare @Component (scope = "workflow") o dovrebbe essere in qualche altro modo?
Grazie
Ho appena ricevuto l'avviso 'metodo @Bean getWorkflowScope è non statico e restituisce un oggetto assegnabile all'interfaccia di Spring BeanFactoryPostProcessor. Ciò si tradurrà in un errore nell'elaborazione di annotazioni come @Autowired, @Resource e @PostConstruct all'interno della dichiarazione del metodo che dichiara la classe @Configuration. Aggiungi il modificatore 'statico' a questo metodo per evitare questi problemi del ciclo di vita del contenitore. Solo FYI, il tuo metodo dovrebbe leggere '@' Bean public ** static ** CustomScopeConfigurer –