Not sure if this will help, but I have the following in my Spring configuration file: <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd "> <context:annotation-config />
<context:component-scan base-package="path.to.my.beans.impl" /> </beans> For each bean implementation I use @org.springframework.stereotype.Component, and for each property that needs to be set on these beans I use @org.springframework.beans.factory.annotation.Autowired. This way you can do the following: @Component public class FooServiceImpl implements FooService { @Autowired private BarService bar; public void doSomething() { // Does something } public void setBar(BarService bar) { this.bar = bar; } } And in your Wicket pages you use: public class MyPage extends Page { @SpringBean private FooService service; public MyPage() { super(); service.doSomething(); } } And of course, don't forget the SpringComponentInjector (which you already have) - and the required fields in your web.xml: <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:your_application_context.xml</param-value> </context-param> Hope this helps, Jeroen