/ / GWTP używa Spring po stronie serwera - spring, gwt, gwt-platform, gwtp

GWTP używa Spring po stronie serwera - wiosna, gwt, gwt-platform, gwtp

Pracuję z programem gwtp i chciałbym go użyćWiosna po stronie serwera. Widziałem, że Spring jest włączony do gwtp, ale nie wiem, jak mogę go użyć. Każdy może mi w tym pomóc? Będzie świetnym przykładem.

Szukałem przez google, ale nie ma mowy :(

Wielkie dzięki!!

Odpowiedzi:

4 dla odpowiedzi № 1

GWTP używa wzorca GIN (Dependency Injection at Client Side) i jest to domyślna integracja z GUICE na stronie serwera DI., aby uzyskać więcej szczegółów GWTP

Wiosna jest po stronie serwera Wzorzec DI.

I have seen that Spring is include in gwtp,

W ogóle nie obejmuje wiosny. jest to domyślna integracja z GUICE, ale możesz użyć sprężyny.


3 dla odpowiedzi № 2

Cóż, na początku musisz skonfigurować Spring w swoim web.xml deskryptor:

<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>

Zauważ, że potrzebujesz Spring4GWT biblioteka dla tego przykładu.
Następnie w swoim RemoteService interfejsy, które musisz określić RemoteServiceRelativePath jak ten przykład:

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);
}

Teraz wystarczy wdrożyć usługę, jak w każdej aplikacji Spring. Przykład: załóżmy, że chcesz wykonać akcję usunięcia użytkownika według ID i użycia paradygmatu GWTP:
Po stronie serwera, tutaj jest 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

}

}

The DeleteUserAction następująco

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;
}

}

I na koniec klasa Wynik:

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

}

Mam nadzieję, że to pomoże.
PS: Przypuszczam, że możesz robić rzeczy wiosenne (kontekst aplikacji itp.) Sam, jeśli nie, proszę powiedz


0 dla odpowiedzi № 3

Możesz znaleźć dobre przykłady na repozytorium GWTP w Github. Niedawno przeprowadziliśmy migrację wszystkich z Google Code do Github, w którym znajduje się najnowsza wersja.

Pamiętaj, że możesz również używać komunikacji REST za pomocą nowego GWTP-Dispatch-Rest, z tym, że nie potrzebujesz dużej ilości kodu konfiguracyjnego, aby zintegrować GWTP z serwerem Spring.

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