Estamos estudando o uso de containers IoC em um sistema (teremos uma arquitetura pluggavel e IoC deve ajudar a manter o acoplamento fraco). Mas nao conhecemos bem os prós e contras dos containers disponíveis por aí.
Alguém já trabalhou com Spring/Picocontainer/Nanocontainer/Avalon? A experiência foi boa?
Links para comparações na web seriam muito úteis também (e sim, eu estou fazendo essa pesquisa no google também…)
O artigo do TSS foi (IMHO) esclarecedor. Apresenta os conceitos de IoC de forma simples e ja parte para os exemplos. Alguem ja usou esse cara? O que diria?
Ja usei Spring e Pico, e as experiencias com os dois foram otimas. Minha preferenca pessoal eh o Spring, por causa da documentacao e das frescurinhas embutidas (*Template, e tal)
Mauricio_Linhares
Também usei os dois e também prefero o Spring pelos brindes, especialmente o suporte a AOP (mesmo que o AspectJ seja melhor), transações e o Quartz, que foi realmente uma mão na roda pra mim
Mas se você só precisa de um container IoC, os dois são bem equivalentes.
Soh pra constar: pelo que vi no artigo do TSS, o HiveMind tambem oferece suporte a AOP.
Marcio Kuchma
A
AllMighty
Obrigado por todas as respostas até agora.
Eu gostei da abordagem minimalista do Picocontainer, da configuração programatica em Java e do mecanismo de Container Hierarchies. So fiquei um pouco preocupado com o excesso de magica do sistema de auto wiring; penso que em situacoes mais complexas que os exemplos dos tutoriais ele pode ser uma fonte de bugs.
O Spring tem os vários “brindes” que são interessantes. E, pelo que pude perceber, totalmente opcionais, o que é ótimo. A configuaração dos componentes parece mais determinista e controlável do que no pico. Ainda não descobri se existe algo parecido com as Containers Hierarchies que eu mencionei; isso tem que ser mais estudado.
O Hivemind não é parece ser muito diferente dos outros. As facilidades para controle do ciclo de vida parecem legais; mas acho que precisaria de algo alem dos Service Lifecycle Models padroes para implementar um controle de escopo mais detalhado (como pensei em fazer com as hierarchies). E fiquei com a impressão que ele é um pouco mais invasivo que o Spring e o pico, mas isso pode ser apenas devido à abordagem do autor do tutorial.