문제

곧 회사를 위한 웹 프로젝트를 시작해야 하고 이제 앱을 구축하기 위한 기술을 선택해야 합니다.Java 사용을 고려 중이므로 앱을 구축하는 데 도움이 되는 프레임워크를 찾고 싶습니다(저는 CakePHP 및 CodeIgniter와 같은 PHP 프레임워크에 익숙합니다).

제가 이해하지 못하는 점은 동일한 목표를 가지고 있지 않은 프레임워크와 기술이 많이 존재하는 것 같습니다.액션 프레임워크, 컴포넌트 프레임워크...하나는 어떻게 할 수 있고 다른 하나는 할 수 없나요?Java 웹 앱은 다양한 기술을 혼합하여 개발해야 하는 것 같아서 약간 당황스럽습니다...나는 JSF, Stripes, Struts2, Tapestry, Wicket 및 Spring과 같은 다양한 Java 프레임워크를 살펴보았습니다.나중에는 이 프레임워크의 다른 부분이 무엇인지, 이 프레임워크가 나에게 무엇을 할 수 있고 무엇을 할 수 없는지 조용히 보지 않습니다.Spring에서 무엇을 가져갈 수 있고, 무엇이 필요하지 않은지...

따라서 :Java 웹 애플리케이션을 구축하려면 무엇이 필요합니까?

나는 이미 기본 CRUD 앱에 JSF를 사용했지만 내 필요에 더 잘 맞는 것을 찾으려고 노력하고 있습니다.우리가 구축해야 할 앱은 보호해야 할 합리적인 데이터를 갖춘 커뮤니티 플랫폼이자 판매자 사이트가 될 것입니다 :)

ORM에 관해서는 저는 그냥 Hibernate로 갈 것 같아요...또한 Maven이나 Ant에 대해 들어봤는데 어떤 식으로 도움이 될까요?

모든 조언/가이드 라인은 대단히 감사 할 것입니다 :-) 미리 감사드립니다.

편집하다 :내 요구 사항은 무엇입니까?Java 프레임워크는 다음과 같습니다.

  • 잘 문서화되어 있고 / 도움을 받기 쉽고 / 가능한 한 쉽게 ...
  • 자바가 많을수록 좋습니다.
  • Ajax 친화적 / 멋진 UI 구축 기능 ...
  • 국제화
  • 아직 학생이기 때문에 기술의 시장성이 중요할 수도 있습니다.

빌드할 앱은 둘 다입니다.

  • 커뮤니티 사이트 :웹 2.0, 크루드
  • 전자상거래 사이트

아직 전체 사양이 완료되지 않았습니다.

도움이 되었습니까?

해결책

이것은 당신의 상황에 처해 있었기 때문에 대답하기 어려운 질문입니다. 최근에 나는 통찰력을 줄 것입니다. 기본적으로 Java는 프레임 워크를위한 선택의 여지가 있으며 아무도 당신에게 어떤 것이 당신에게 가장 적합한지를 실제로 말할 수 없습니다. 우리가 할 수있는 일은 일부 기술을 분류하는 것입니다.

다음은 내가 원하는 동일한 답변을 찾아서 만나는 것입니다.

Java에는 풀 스택 솔루션을 제공하려는 다양한 기술이 있습니다. 이러한 기술은 다른 기술로 분류 될 수 있지만 함께 사용할 때 잘 작동합니다.

기본적으로 웹 애플리케이션에는 3 개의 계층, 프레젠테이션, 비즈니스 및 데이터 계층이 있습니다. 프레젠테이션 계층은 사용자가 보는 프론트 엔드입니다. 일반적 으로이 세 계층의 기술을 혼합하고 일치시킬 수 있습니다. 예를 들어 IOC에 대한 스프링 프레임 워크와 함께 스트라이프 프론트 엔드를 사용할 수 있으며 최대 절전 모드를 ORM으로 사용할 수 있습니다.

스프링 -MVC, 스트럿, 스트라이프, 개찰구, JSF/이음새 및 태피스트리를 포함하여 프레젠테이션 레이어에 사용할 수있는 많은 훌륭한 기술이 있습니다. 이들 중 대부분은 JSTL을 사용하여보기에 JSP를 사용하며, 실제로 Java "Components"(POJOS)를 사용하여 HTML을 논리에서 분리하는 개찰구를 제외하고. 두 가지 접근 방식에 대한 이점과 단점이 있습니다. 개찰구 접근법의 이점은 정적 유형이 결합하고 HTML을 완전히 분리하여 디자이너에게 전달할 수 있다는 것입니다.

비즈니스 계층의 경우 일반적으로 사람들은 의존성 주입 (DI)에 일종의 IOC (Control Framework)의 역전을 사용합니다. IOC의 인기있는 프레임 워크는 Spring and Seam이며, 이들은 스프링 보안과 같은 관련 기술을 가지고 있으며 일반적으로 다른 기술에 의해 지원됩니다. Google Guice는 직선 DI 프레임 워크에 인기있는 것 같습니다.

마지막으로, 데이터 계층의 경우 대부분의 사람들은 최대 절전 모드 또는 JPA를 사용하는 경향이 있습니다. 다른 사람들이 있지만 나는 그들과 경험이없고 더 이상 정보를 제공 할 수 없습니다.

Tapestry는 내가 이해하는 것과 같은 전체 스택이 되려고 시도하고 개찰구를 취하는 또 다른 프레임 워크입니다 (또는 개찰구는 태피스트리와 같은 접근 방식을 취한 것 같습니다. Grails는 그루비를 사용하여 또 다른 풀 스택 프레임 워크이며 Spring and Hibernate 위에 제작되었습니다. 레일을 좋아한다면 성배는 꽤 좋습니다.

이러한 기술의 대부분은 사용 가능한 많은 정보와 매우 활발한 메일 링리스트 / IRC 대화방을 가지고 있습니다. 당신이해야 할 일은 그들을보고 어떤 접근법이 당신에게 맞는 접근법인지 결정하는 것입니다. 여기 아무도 당신이 좋아하는 것을 말할 수 없습니다.

추천을 원한다면 언젠가 개찰구/기체/최대 절전 모드 스택을 사용하고 싶습니다.

다른 팁

내가 가장 좋아하는 것은 확실히 봄입니다. 새로운 Spring MVC 2.5는 쉽고 빠르게 설정할 수 있으며, 컨트롤러를 선언적으로 전달하여 많은 타이핑을 저장하는 데 도움이되는 많은 주석이 있습니다. 또한 제가 가장 좋아하는 가벼운 J2EE 교체 컨테이너 인 스프링 컨테이너와 통합됩니다. 나는 보통 SpringMVC를 간단한 JSP와 결합하지만 선택할 수있는 다른 뷰 기술이 많이 있습니다. 지속성을 위해 나는 보통 최대 절전 모드를 사용합니다. 살펴볼 가치가있을 수 있습니다 봄 루 그루비가없는 성배와 비슷합니다. Spring Security는 보안을 수행하는 멋지고 쉽게 선언적 인 방법을 제공하며 모든 인증 기술에 통합됩니다.

Maven과 Ant는 둘 다 빌드 도구이며 Maven은 또한 귀하를 위해 의존성을 처리합니다. 귀하는 원하는 라이브러리와 버전 요구 사항을 설명하는 디스크립터를 설정하고 Maven은 모든 라이브러리와 해당 종속성을 다운로드합니다. 그러나 특정 프로젝트 레이아웃을 따르도록 강요합니다. 개미에게는 의존성을하는 아이비가 있습니다.

한 번 살펴보시길 권합니다 성배.Grails는 입증된 Java 프레임워크(Spring, Hibernate 등) 스택을 기반으로 구축된 "관례에 따른 코딩" 웹 애플리케이션 프레임워크입니다. 그루비 언어..

Grails의 장점은 Spring, Hibernate 등에 대한 지식이 거의 필요하지 않다는 것입니다.시작하려면.그러나 나중에 필요한 경우 이러한 프레임워크의 모든 기능에 계속 액세스할 수 있습니다.

백엔드에 확실히 스프링을 사용하십시오. 무료 지원 포럼에는 훌륭한 커뮤니티가 있습니다 (보다 공식적인 지원을 지불 할 수도 있습니다).

최대 절전 모드를 사용하기로 한 결정과 관련하여 앱을 Hibernate (여러 JPA 구현 중 하나)에서 분리하기 위해 JPA에 대해 코딩 할 수 있습니다.

Ajax 프론트 엔드를 원한다면 ZK 뼈대; JavaScript를 배울 필요없이 사용하기 쉽고 DWR과 같은 배관 라이브러리를 사용하지 않아도됩니다.

봄을 사용하는 다른 사람들의 조언은 훌륭한 아이디어입니다. 각 프레임 워크가 약간 다른 문제를 해결하기 때문에 실제로 여러 가지 다른 프레임 워크를 함께 사용한다는 것을 알게 될 것입니다.

나는 당신이 점프하기 전에 각 프레임 워크 나 기술에 시간을 투자하는 것이 좋습니다. 그러나 결국 당신은 그들이 함께 일하도록하기를 원할 것입니다. 예를 들어 Struts + Spring + Hibernate 설정을 원할 수 있습니다. 그들을 구성하는 것은 두통이 될 수 있습니다.

그래서 나는 당신이 사용하는 것이 좋습니다 appfuse 기본 기능으로 기본 응용 프로그램을 생성하여 도움이됩니다. 큰 시간 절약입니다. 물론 당신은 당신을 위해 구성된 다양한 프레임 워크를 이해해야하므로 마법 솔루션이 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top