On 2/26/07, Bob Lee <[EMAIL PROTECTED]> wrote:
On 2/26/07, Konstantin Priblouda <[EMAIL PROTECTED]> wrote:
>
> Hi Bob,
> I'd like to say that I'm codeveloper of
> pico/nanocontainer.
I've used Pico and Nano. Nano uses my AOP framework. You should try Guice.
> What's important is that you don't depend on the
> > implementation. Depending
> > on the interface and annotation is OK. Strings are a
> > pain.
>
> We do not depend on string keys to dientify components
> - key in container is just object, and is
> needed only in case of ambiguity ( but it could be
> string as well )
Using these key objects is more verbose than using annotations with Guice.
> Basically I just register this session component -
> and my HibernateUserManager receives it in
> constructor.
>
> Why do I need an annotation to achieve this?
The annotation indicates which constructor you want injected (to the
framework as well as other programmers). What happens if you forget to
configure a PasswordHasher in Pico? No hashing? That's not very secure.
If you can't annotate a constructor (because you don't control the code),
you can use a custom provider. For example:
class HibernateUserManagerProvider implements Provider<HibernateUserManager>
{
@Inject Session session;
@Inject PasswordHasher passwordHasher;
public HibernateUserManager get() {
return new HibernateUserManager(session, passwordHasher);
}
}
Well, there is still a question why it is better than
> pico ;)
Write less code, and get better up front checking and better performance.
What more do you want?
Bob
Bob it sounds cool, but without documentation I would say that there
are not many chances people will look into it. I will wait for the
moment the documentation becomes available.
./alex
--
.w( the_mindstorm )p.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]