Cofiguração programática para o Spring
June 24th, 2007Além do excelente projeto mantido pelo Urubatan o SpringAnnotation, existe também uma outra forma de configurar o Spring sem os seus terríveis XMLs, o Spring JavaConfig, apesar de não estar utilizando este projeto, e nem penso em usar enquanto o Urubatan estiver dando continuidade no SA. Mas para aqueles que querem ver outra forma de fazer isto, até mesmo para uma comparação entre os projetos, vou aqui mostrar.
A Idea deste projeto é a configuração programática do Spring, onde se tem uma classe principal anotada com @Configuration e métodos anotados com @Bean que retornam seus Beans. Fazendo uma analogia com XML, a classe principal com @Configuration seria o seu XML e os métodos anotados com @Bean seria as TAGs
Vejam um exemplo de uma classe com confguração programática.
@Configuration(defaultAutowire = Autowire.BY_NAME, defaultLazy = Lazy.FALSE) public class ConfigSpring { @Bean public ICommand create() { return new CreateCommand(); } @Bean public ICommand delete() { return new DeleteCommand(); } @Bean public ICommand update() { return new UpdateCommand(); } @Bean public Main main() { return new Main(); } }
E para carregar estes Beans no contexto do Spring, usa-se o código abaixo:
ApplicationContext configContext = new AnnotationApplicationContext(ConfigSpring.class.getName());
Conclusão e Comparatvo com SpringAnnotations
Apesar de este ser um projeto reconhecido pela Interface21, esta muito longe de ter as features que o SpringAnnotations tem, principalmente para JSF.
As anotações do Spring JavaConfig ficam todas numa só classe de configuração, diferentemente do AS, que as anotações estão em cada classe do projeto sendo carregadas automáticamente na carga da aplicação.