2014-05-09 5 views
0

Spring Framework가 제공하는 많은 기능 중 하나 인 "Spring Application"을 실행하는 컨테이너에 대해 의심의 여지가 있습니다. 컨테이너 EE없이 응용 프로그램을 만들 수 있습니다. 스프링 프로젝트에서이 유형의 컨테이너 ("WildFly", "GlassFish")를 올바르게 사용하고 있습니까? 제 선택의 여지가 있지만 나는 더 많은 사람들이 듣고 있습니다.스프링 프로젝트 용 컨테이너

작성자가 WildFly와 함께 Spring 4의 기능을 보여주고 있지만 동의하지 않았기 때문에이 주제에 관해 더 많은 의견을 나누고 싶습니다.

+0

예, Spring을 사용하여 비 EE 컨테이너를 만들 수 있습니다. 예, EE 애플리케이션 서버에서 Spring을 사용할 수 있습니다. 그 문장 중 하나가 당신의 질문에 답합니까? –

+0

왜 나에게 이해가되지 않는 이유는 무엇입니까? EE contaner에는 응용 프로그램에서 항상 사용하지 않는 많은 기능이 있습니다. 그러나 응용 프로그램을 부팅 할 때 사용하지 않더라도 모든 기능이 초기화되며 이는 프로덕션 환경으로서의 자원 낭비입니다. 그리고 그것은 내가 사용하려는 것을 구성 할 수있는 능력을 가지고 있기 때문에 Spring을 사용하여 응용 프로그램을 제작할 때 장점으로 생각하는 것 중 하나입니다. –

+0

그건 다른 질문입니다. 개인적으로는 스프링이 사전 주석 구동 애플리케이션 서버보다 더 잘 설계되어 있기 때문에 필자는이를 사용할 것입니다. Spring은 Spring에서 많은 것을 배운 새로운 주석 기반 서버를 사용하여 덜 유용합니다. 그러나 그것은 실제로 SO에 대한 질문이 아닙니다. 당신이 특별한 경우를 위해 그것을 말하면 않는 한. –

답변

1

스프링 웹과 웹 MVC를 고려할 때 일반적으로 Tomcat, Jetty 또는 다른 서블릿 컨테이너와 같이 가벼운 컨테이너를 사용합니다. 스프링 부트처럼 삽입 할 수 있습니다.

스프링 웹은 전체 JEE 컨테이너가 없어도 작동하도록 설계되었지만 내부에 배치 된 경우에도 작동합니다.

JEE가없는 Spring을 사용하면 사용하는 기능에 대한 제어 기능이 훨씬 향상됩니다. 전체 애플리케이션 서버에는 번들 기능 목록이 있습니다. 모두 제공되거나 전혀 제공되지 않습니다. Spring은 필요한 것을 선택하여보다 슬림 한 애플리케이션을 만들 수 있도록합니다.

0

우선, "주체적 인 질문"의 유형에서 소프트웨어 개발에있어서 "무언가"가 잘못되었거나 올바르다 고 말하는 것은 약간 까다 롭습니다. 언제나처럼, 그것은 정말로 당신이 필요로하는 것과 EE Container에서 당신이 사용하고있는 것에 달려 있습니다.

Widlfly를 예로 들어 봅시다. JBoss 7 (그리고 Wildfly) 이후로 JBoss는 JBoss가 "무거운"서버라고 말할 수 있다고 생각하지 않습니다. 단지 몇 초 만에 시작할 수 있기 때문에 이전 버전보다 훨씬 빠릅니다. Wildfly에는 사용할 수없는 많은 서비스가 포함되어 있지만 사실은 적어도 2 가지 이유 때문에 "모두 또는 전혀 없음"이라고 말하는 것이 맞지 않습니다.

  • 서비스를 사용하지 않도록 설정할 수 있습니다 너는 필요 없어.
  • Wildfly는 서비스에 대해 지연로드 개념을 사용합니다. 즉, 지정된 애플리케이션을 실행하는 데 필요한 서비스 만로드합니다.

그렇다면 스프링이 원하는 경우 일부 EE 서비스를 사용한다는 것을 잊지 못할 수도 있습니다. 예를 들어 JMS와 함께 Spring을 사용해야하는 경우 여전히 JMS 컨테이너가 필요합니다. 이 경우 추가 서비스를 설치하지 않고 EE 서버를 사용할 수도 있고 Tomcat에서 JMS 컨테이너를 시작할 수도 있습니다.

EE 기능 외에 configurability/manageability (웹 인터페이스, CLI), HA, 확장 성 등과 같은 서버 관련 기능에 대한 질문도 있습니다. 서버마다 실제로 다릅니다. Jboss 7/Widfly는 이러한 점에 대해 훌륭한 성과를 거두었습니다.

+0

모든 포인트를 확인한 후에도 스프링 애플리케이션을 사용하는이 유형의 컨테이너에 대한 실질적인 접근법은 여전히 ​​보이지 않습니다. 기본 구현을보고 새 JMS 기능 (http://goo.gl/WDrSKl)의 완전하고 업데이트 된 업데이트가있는 RabbitMQ에 대해 여전히 봄에 권장하는 경우 "JMS"라고 말한 예제를 사용합니다. WildFly는 HornetMQ와의 통합이 가능하지만 거대한 잠재력을 지닌 것을 잊지는 못하지만 통합은 업데이트되지 않습니다. –

+0

여기에서 언급 할 수없는 두 가지 다른 점은 내가이 컨테이너의 인질이 될 것이며 필요한 기능의 볼륨이 바람둥이 또는 부두보다 더 커야한다는 것입니다. 이 경우를 생각해 봅시다. Spring.io는 4x2GB 앱 인스턴스가있는 사용자 500 명 (24 시간 × 7 시간)을 지원합니다. (http://goo.gl/jc08SD) WildFly를 사용하여이 환경을 시뮬레이트하는 데 필요한 구성은 무엇입니까? –

+0

개발자로서 저는 어플리케이션의 라이프 사이클의 모든 요소를 ​​고려해야하며, 프로덕션 환경도 그 중 하나입니다. –

관련 문제