Legal, não sabia que suportava por nome tb, mas isso realmente me pareceu básico dele suportar. O exemplo da introdução no site deles não menciona isso e achei que por ser básico deveria aparecer ali. Então pensei que não suportava.
AutoWire totalmente automático é loucura. Funciona em hello world, mas em qualquer projeto maior vc vai começar a ter clash de dependencia. Por isso no MentaContainer isso é explícito por nome e type. Deixar apenas por type tem dois problemas:
-
Clash como eu falei
-
Demasiadamente custoso, pois agora vc tem que checar todas as propriedades de todo mundo e fazer um cruzamento entre todas as classes e suas propriedades. Quando vc define uma lista finita de dependencias isso fica bem mais simples e rápido.
Não sei se o Pico te permite especificar as dependencias. Provavelmente sim, mas olhei o javadoc deles e não encontrei nada como addDependency.
Mas tudo bem, podem usar o Pico ao invés do MentaContainer se assim desejarem. Vcs são livres pra isso. O PicoContainer é muito bom. Não sei porque o Google não usou o PicoContainer quando precisou de um container de IoC com configuração programática. Eles adoram re-inventar a roda por lá, a começar pelo próprio buscador…
Já pra mim valeu muito a pena porque o Mentawai suporta IoC e DI e AutoWiring desde 2005 quando foi lançado e eu apenas extraí essa funcionalidade num framework separado. Valeu como aprendizado e principalmente para fazer com que o Mentawai se torne um container de IoC genérico e não apenas para Actions. Claro que usando ele com Spring/Guice/Pico/XXX vc tb consegue isso, mas lembre-se que desde 2005, antes de Struts2, VRaptor2, VRaptor3, Seam, etc. o framework possui a filosofia de ser FULLSTACK, sem XML e sem Annotations. É isso que diferencia ele dos outros 10 milhões de frameworks. A roda fica diferente das outras porque tem sua própria integridade.