2013-06-11 3 views
0

Я работаю с gwtp, и я бы хотел использовать Spring на стороне сервера. Я видел, что Spring включен в gwtp, но я не знаю, как я могу его использовать. Кто-нибудь может мне помочь? Будет классный пример.GWTP с использованием Spring на стороне сервера

Я искал на Google, но нет возможности :(

спасибо !!

+0

Ну, я не знаю о gwtp, но я могу заверить вас, я использовал Весна-безопасности на стороне сервера. Итак, если вы думаете на стороне сервера, да, вы можете использовать Spring (все фреймворки на основе Java подходят для сервера). – apanizo

+0

Да, я так думаю. Но проблема в том, чтобы знать, как я могу интегрировать gwtp с Spring.Спасибо в любом случае :) – Luismiv85

ответ

3

Ну, сначала вы должны настроить Spring в вашей web.xml дескриптора:

<listener> 
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 

<servlet> 
    <servlet-name>springGwtRemoteServiceServlet</servlet-name> 
    <servlet-class>org.spring4gwt.server.SpringGwtRemoteServiceServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>springGwtRemoteServiceServlet</servlet-name> 
    <url-pattern>/yourProjectName/springGwtServices/*</url-pattern> 
</servlet-mapping> 

Обратите внимание, что для этого вам нужна библиотека Spring4GWT.
Далее, в ваших RemoteService интерфейсах вам необходимо указать RemoteServiceRelativePath, как в этом примере:

import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; 
import com.google.gwt.user.client.rpc.RemoteService; 

@RemoteServiceRelativePath("springGwtServices/userService") 
public interface UserService extends extends RemoteService{ 
    public User getUserByLogin(String name); 
    public void logout(); 
    public void deleteUserById(Long userId); 
} 

И теперь вам просто нужно реализовать свою службу, как в любом приложении Spring. Пример Предположим, что вы хотите, действие, удалить пользователя, ID и используя парадигму GWTP:
В стороне сервера, вот Handler:

@Repository("deleteUserHandler") 
public class DeleteUserHandler extends AbstractActionHandler<DeleteUserAction, DeleteUserResult> { 

    @Autowired 
    private UserService userService; 

    public DeleteUserHandler(){ 
    super(DeleteUserAction.class); 
    } 

    @Override 
    public DeleteUserResult execute(DeleteUserAction action, ExecutionContext arg1) 
     throws ActionException { 
    Long idToDel = action.getUserToDeleteId(); 
    if(idToDel != null){ 
     userService.deleteUserById(idToDel); 
    } 
    return new DeleteUserResult(); 
    } 

    @Override 
    public void undo(DeleteUserAction arg0, DeleteUserResult arg1, 
     ExecutionContext arg2) throws ActionException { 
    // TODO Auto-generated method stub 

    } 

} 

DeleteUserAction выглядит следующим образом

public class DeleteUserAction extends UnsecuredActionImpl<DeleteUserResult> { 
    private Long userToDeleteId; 

    public DeleteUserAction(Long userToDel) { 
    this.userToDeleteId = userToDel; 
    } 

    /** 
    * For serialization only. 
    */ 
    @SuppressWarnings("unused") 
    private DeleteUserAction() { 
    } 

    public Long getUserToDeleteId() { 
     return userToDeleteId; 
    } 

    public void setUserToDeleteId(Long userToDeleteId) { 
     this.userToDeleteId = userToDeleteId; 
    } 

} 

И, наконец, класс результатов:

public class DeleteUserResult implements Result { 
    /** 
    * For serialization only. 
    */ 
    //@SuppressWarnings("unused") 
    public DeleteUserResult() { 
    } 

} 

Надеюсь, это поможет.
PS: Я полагаю, вы можете сделать пружинные вещи (контекст приложения и т.д ..) самостоятельно, если нет, пожалуйста, сообщите

+0

+1 для краткого объяснения. –

4

GWTP использует GIN шаблон (Dependency Injection at Client Side) и это по умолчанию интеграция с Guice на стороне сервера DI. для более подробной информации GWTP

Весна - это серверная сторона DI pattern.

I have seen that Spring is include in gwtp, 

В него не входит весна. это интеграция по умолчанию с GUICE. но вы можете использовать весну вместе с ней.

+0

+1. Полезные ссылки. –

0

Вы можете найти некоторые хорошие примеры на GWTP хранилище в Github. Недавно мы перенесли все из нашего кода Google в Github, в котором размещена последняя версия.

Помните, что вы также можете использовать связь REST с помощью нового GWTP-Dispatch-Rest с тем, что вам не нужно много кода конфигурации для интеграции GWTP со стороной Spring.

https://github.com/ArcBees/GWTP-Samples

Смежные вопросы