응용 프로그램이 매우 크고 백엔드 빌드가 많은 시간 (10 분 이상)이 걸리거나 좋은 이유가있을 때마다 모든 응용 프로그램을 다시 작성하지 않으려는 경우 별도로 배포해야한다고 생각합니다. . Spring MVC에서 angularJS 응용 프로그램을 사용하더라도 스프링 페이지를 사용하면 스프링 생태계, 중앙 집중식 보안, 로그인 및 액세스 제어, SSO, 많은 통합, 봄철 사회 등을 사용할 수 있습니다. 정말 필요한지 확실하지 않습니다. 그들을 2 개의 앱으로 나눕니다. 하지만 어쨌든.
1) angularJS 앱을 분리하려면 컨트롤러 또는 jsp 파일에서 angularjs 앱으로 라우팅에 대한 모든 로직을 이동해야합니다. 토큰 기반 인증/로그인을 구현하십시오.그런 다음 REST_BASE_URL을 일정한 각도 블록으로 정의하고 모든 URL ($ http, $ resource)을 사용하여 요청 URL을 생성 할 수 있습니다. 기본적으로 각도 부분에서 작업하는 경우 원격 서버에서 백엔드를 설정하고 nginx 또는 작은 서버를 사용하여 각도 애플리케이션 만 로컬로 실행할 수 있으며 Google Crome에서 작업합니다 (이 도구를 사용하여 크롬을 실행하십시오 : --args --disable- 웹 보안 - 사용자 - 데이터 - 디렉토리/). 불행히도 Firefox에서는 CSRF 확인을 비활성화 할 수 없습니다.
2) 2 개의 앱을 별도로 빌드하고 배포 할 수있어 좋을 것입니다.
3) 당신은 또한 자신의 AuthenticationEntryPoint를을 만들고 스프링 나머지 대신 로그인 페이지의) SC_UNAUTHORIZED (401 반환해야합니다. 각 측이이 같은 로그인 페이지 또는 대화 상자 (401)을 잡아 보여 글로벌 인터셉터를 추가 할 수 있습니다 :
.factory('authHttpResponseInterceptor',['$q','$location',function($q,$location){
return {
response: function(response){
if (response.status === 401) {
console.log("Response 401");
}
return response || $q.when(response);
},
responseError: function(rejection) {
if (rejection.status === 401) {
window.location.reload();
}
return $q.reject(rejection);
}
}
}])
죄송합니다,하지만 내 질문은 분리에 대해이었다. 나는이 단계에서 분리하는 것이 더 낫다는 것을 안다. 더 - 더 혼란. 당신의 대답은 전혀 대답하지 않습니다. – user1935987
진심으로, 당신은 방금 Spring + AngularJS 앱을 만드는 것에 대해 이야기하고 있습니다. 그리고 이것은 질문이 아닙니다. 그러면 답을 삭제하면됩니다. – user1935987
와우, @ user1935987. 도움을 많이 주려고합니다. 나는 아직도 내 대답을 남겨 둘 것이다. – javaGirl243