How does Wicket's @SpringBean annotation work?

Tarquila picture Tarquila · Dec 22, 2009 · Viewed 15.1k times · Source

How does Wicket's @SpringBean annotation work? Does it use reflection at run time? Does it make the compiler inject some code? Or what?

Answer

skaffman picture skaffman · Dec 23, 2009

@SpringBean works using Wicket's underlying Injector mechanism. When you instantiate a Wicket component, the constructor of Wicket's component base class introspects the class being instantiated, looking for the @SpringBean annotation. If the bean is found, then Wicket generates a proxy for the spring bean and injects it into the component's field. This is Wicket's equivalent of Spring's @Autowired annotation, the effect is similar.

It doesn't, however, have anything to do with Spring's own context/classpath scanning functionality (e.g. @Component), which is about auto-discovery of what is and isn't a bean, rather having anything to do with wiring.