package spring.boot.example.wicket; import org.apache.wicket.Page; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.spring.injection.annot.SpringComponentInjector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Component; import spring.boot.example.wicket.components.Homepage; import spring.boot.example.wicket.components.MountedPage; import spring.boot.example.wicket.services.TextService; /** * The web application class also serves as spring boot starting point by using * spring boot's EnableAutoConfiguration annotation and providing the main * method. * * @author Stefan Kloe * */ @Component @EnableAutoConfiguration @ComponentScan public class WicketWebApplication extends WebApplication { private final static Logger logger = LoggerFactory .getLogger(WicketWebApplication.class); @Autowired private TextService exampleService; @Autowired private ApplicationContext applicationContext; /** * spring boot main method to build context * * @param args */ public static void main(String[] args) { SpringApplication.run(WicketWebApplication.class, args); } /** * provides page for default request */ @Override public Class<? extends Page> getHomePage() { return Homepage.class; } /** * <ul> * <li>making the wicket components injectable by activating the * SpringComponentInjector</li> * <li>mounting the test page</li> * <li>logging spring service method output to showcase working * integration</li> * </ul> */ @Override protected void init() { super.init(); getComponentInstantiationListeners().add( new SpringComponentInjector(this, applicationContext)); mountPage("/mounted.html", MountedPage.class); logger.info(exampleService.getText()); } }