Ну, сначала вы должны настроить 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: Я полагаю, вы можете сделать пружинные вещи (контекст приложения и т.д ..) самостоятельно, если нет, пожалуйста, сообщите
Ну, я не знаю о gwtp, но я могу заверить вас, я использовал Весна-безопасности на стороне сервера. Итак, если вы думаете на стороне сервера, да, вы можете использовать Spring (все фреймворки на основе Java подходят для сервера). – apanizo
Да, я так думаю. Но проблема в том, чтобы знать, как я могу интегрировать gwtp с Spring.Спасибо в любом случае :) – Luismiv85