Thanks for your answer.
> > Wouldn't it be sufficient to use a static member to hold a reference to a > service? i.e. > > > > public class SomeWicketComponent{ > > private static MyService service; > > // ... > > } > > > > How would you intialize these? Would you have a static getter, and force > yourself to remember to always use it? Or would you have a static setter > and centralize the initialization code somewhere else? Either way sounds > ugly to me. This is the DI problem, but in this step I only regarded the serialization problem. I wanted to fetch object as you described it: > MyService svc = (MyService) MyApp.getBean("myService"); > > Let's see, where to start... > > - it's ugly > - the cast and the bean name can fail in a way that is only detectable > at runtime > - it ties all your components to your application class > - it's difficult to test, since you need to mock up a MyApp instance for > your component to work You're right. My solution is like a solution without DI and with all the dependency troubles DI should avoid. > What don't you like about them? Annotations are often missused and they bring a declarative programming style to Java. Sometimes you don't know what happens in the background. A programm can better be understood if you can follow the instruction instead of guessing how annotions will be interpreted. I think of Spring MVC where a @Controller exists. It indicates that you want the class to be a controller. But you don't see how the controller must look like, you don't see that you need other annotations to get your controller working. The old style with extendig some framework classes are much more readable but a bit more verbose. But there are also some good use cases for annotations like JPA and maybe the mentonioned annotation to integrate Spring in Wicket. I tried to use Spring integration but failed. I wonder about the class org.apache.wicket.spring.injection.annot.SpringComponentInjector mentioned in the API doc. This class does not exist! I've only found wicket.spring.injection.annot.SpringComponentInjector. The missing "org.apache" should be irrelevant, but the following example doesn't work: package some.package; import org.apache.wicket.Page; import org.apache.wicket.protocol.http.WebApplication; import wicket.spring.injection.annot.SpringComponentInjector; public class WickiApplication extends WebApplication { @Override public void init() { addComponentInstantiationListener(new SpringComponentInjector(this)); } // ... } The compiler says: "cannot find symbol. symbold: constructor SpringComponentInjector(...)" SpringComponentInjector is on the classpath, the import is correct, but it doesn't work. Have you any idea why? Thanks. Christian -- http://www.groovy-forum.de --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org