Пример интеграции Wicket + Spring

Пример интеграции Wicket + Spring

В этом руководстве показано, какintegrate Wicket with Spring framework.

Библиотеки в этой статье:

  1. Калитка v1.4.17

  2. калитка-пружина v1.4.17

  3. Spring v3.0.5.RELEASE

1. Структура проекта

Конечная структура каталогов проекта этого урока, ничего особенного, просто стандартный проект Maven.

wicket spring example

2. Зависимость проекта

Получите зависимости Wicket и Spring, для интеграции обоих вам понадобится «wicket-spring.jar».



    

        
        
            org.apache.wicket
            wicket
            1.4.17
        

        
        
            org.apache.wicket
            wicket-spring
            1.4.17
        

        
        
            org.springframework
            spring-core
            3.0.5.RELEASE
        

        
            org.springframework
            spring-context
            3.0.5.RELEASE
        

        
            org.springframework
            spring-web
            3.0.5.RELEASE
        

        
        
            org.slf4j
            slf4j-log4j12
            1.5.6
        

    

3. Фасоль

Создайте bean-компонент Spring, аннотируйте его@Service.

package com.example.user;

public interface HelloService {

    String getHelloWorldMsg();

}
package com.example.user;

import org.springframework.stereotype.Service;

@Service
public class HelloServiceImpl implements HelloService {

    public String getHelloWorldMsg() {
        return "Spring : hello world";
    }

}

4. Залить в контейнер Spring

Создайте стандартный файл SpringapplicationContext.xml, включите функцию автоматического сканирования компонентов.

Файл: applicationContext.xml



    

5. Интеграция калитки с пружиной

Замените методinit() приложения Wicket этим «addComponentInstantiationListener(new SpringComponentInjector(this));».

Файл: Класс приложения Wicket

package com.example;

import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
import com.example.user.SimplePage;

public class WicketApplication extends WebApplication {

    @Override
    public Class getHomePage() {

        return SimplePage.class; // return default page
    }

    @Override
    protected void init() {

        super.init();
        addComponentInstantiationListener(new SpringComponentInjector(this));

    }

}

Теперь вы можете внедрить компонент Spring в компонент Wicket через@SpringBean.

package com.example.user;

import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.spring.injection.annot.SpringBean;

public class SimplePage extends WebPage {

    @SpringBean
    private HelloService helloService;

    public SimplePage(final PageParameters parameters) {

        add(new Label("msg", helloService.getHelloWorldMsg()));

    }

}


    

Wicket + Spring integration example

6. web.xml

Последний шаг, дайте знать вашему веб-проекту, что такое Wicket и Spring. Объявляет как вweb.xml.

Файл: web.xml



    Wicket Web Application

    
        wicket.wicketTest
        org.apache.wicket.protocol.http.WicketFilter
        
            applicationClassName
            com.example.WicketApplication
        
    

    
        wicket.wicketTest
        /*
    

    
        
                     org.springframework.web.context.ContextLoaderListener
                
    

7. Demo

Старт и посещение -http://localhost:8080/WicketExamples/.

Простая страница Wicket, и сообщение возвращается из Spring.

wicket spring demo