2010-07-27 2 views
18

스프링 MVC는 엔터프라이즈 웹 애플리케이션을 구축하는 데 매우 일반적으로 사용되는 프레임 워크가되었습니다. 복잡한 웹 애플리케이션에는 일부 조건부 플로우 (즉, 신용 카드 정보가 정확하다면 처리 된 주문 표시 또는 무언가가 정확하게 입력되지 않은 경우 유효성 검사 오류)를 포함하여 코딩해야하는 특정 플로우가 있습니다.Spring MVF를 기반으로 Spring WebFlow를 사용하는 것이 적절한가?

스프링 MVC를 기반으로 스프링 웹 플로우를 사용하는 것이 적절한가? Spring WebFlow 사용과 관련된 의사 결정 프로세스는 무엇이되어야합니까?

답변

6

일부 응용 프로그램 프로세스가있는 웹 응용 프로그램이있는 경우. 예를 들어, 어떤 종류의 가입 절차가있는 경우 한 단추는 한 페이지로 이동하고 다른 한 페이지는 다른 페이지로 이동할 수 있습니다. Spring Webflow는 서로 다른 여러 프로세스로의 전환을 잘 처리 할 수 ​​있습니다.

기본적으로 응용 프로그램의 일부가 연결되어 있고 실행 과정에서 페이지가 서로 의존하면 SWF를 사용하는 것이 좋습니다.

2

웹 흐름이 효율적으로 해결하는 한 가지 문제는 제어 로직에서 비즈니스 로직을 깔끔하게 분리하거나 적어도 혼합하는 것을 어렵게 만드는 것입니다.
@ 존과 유즈 케이스에 동의하지만, 일단 웹 플로우를 많이 사용하게되면 웹 플로우에서 XML 파일의 모든 플로우를 지정하므로 많은 XML 파일을 작성하게됩니다. 이것은 개인적으로 나를 위해 거의 거래 차단기입니다.

+0

나는 XML이 매우 성가신 데 동의하지만, 대안은 훨씬 더 (자바로 자신 만의 흐름 논리를 작성하는 것)이다. 필자는 웹 플로우를 사용할 수있게되기 전에 사람들이 시도하려고했으나 유지해야 할 악몽입니다. –

4

내가 개인적으로 webflow처럼 무슨 대부분은 2 가지입니다 : 흐름과 뷰 상태를 상속

  1. 능력. 이것은 응용 프로그램의 다른 부분간에 공유하려는 공통 논리 측면을 가지고있을 때 매우 유용합니다. 예를 들어, 별도의 흐름으로 추상화 한 다음 하위 흐름에서이 논리를 상속하도록 허용하려는 CRUD 논리가 있습니다. 각 플로우는 입출력을 가질 수 있으므로 로직을 매우 세분화 할 수 있습니다.
  2. 강력한 테스트 프레임 워크입니다. 단위 테스트에서 흐름 논리의 거의 모든 측면을 다룰 수 있습니다. 액션 파이어링, 하나의 뷰에서 다른 뷰로의 전환, 지속성 처리 등등과 같은 많은 프로그래밍 방식을 에뮬레이션 할 수 있습니다.

내가 싫어하는 것은 최신 버전의 불일치 및 이전 버전과의 호환성이 좋지 않다는 것입니다. 예를 들어, 최신 웹 플로우 2.1은 JSF 1.x jira과 호환되지 않습니다. Spring Security와의 통합에는 수많은 문제가 있습니다. 예를 들어, 봄 보안 3.x에서 패키지 이름을 변경 한 경우 일반적으로 Sasi가 언급했듯이 웹 플로우는 서로 다른 웹 플로우에서 논리를 분리하도록 강요합니다.

1

MVC와 SWF를 사용했습니다. 필자는 개인적으로 인해 다음과 같은 두 가지 고체 이유로 MVC를 통해 SWF를 선호하지 :

  1. 스프링 MVC는 더는 동일한 브라우저에서 여러 탭에서 세션 제어를위한 메커니즘을 내장하고있다.
  2. SWF에서 MVC보다 브라우저를 되돌릴 수 있습니다.
관련 문제