programing

봄 대 EJB스프링이 EJB를 대체할 수 있습니까?

projobs 2022. 9. 25. 10:46
반응형

봄 대 EJB스프링이 EJB를 대체할 수 있습니까?

Spring은 EJB와 마찬가지로 트랜잭션을 사용할 수 있기 때문입니다.스프링은 EJB를 사용해야 하는 요건을 대체할 수 있습니다.EJB를 사용하면 어떤 장점이 더 있는지 말씀해 주실 수 있나요?

스프링은 처음부터 EJB의 대안으로 개발되었으므로 당연히 EJB 대신 스프링을 사용할 수 있습니다.

EJB를 사용하는 것에 「장점」이 있다면, 그것은 당신 팀의 스킬에 달려 있다고 말할 수 있습니다.Spring 전문 지식이 없고 EJB 경험이 많다면 EJB 3.0을 사용하는 것이 좋습니다.

EJB 표준을 지원하도록 작성된 앱 서버는 이론적으로 호환 Java EE 앱 서버 간에 이식할 수 있습니다.단, 벤더 고유의 확장에 얽매이는 일체의 벤더에 얽매개 벤더에 얽매이지 않습니다.

애플리케이션 서버(WebLogic, Tomcat, JBOSS 등) 간에 스프링 포트를 쉽게 사용할 수 있습니다.

하지만, 당신은 봄에 갇혔어요.

스프링은 Guice 또는 다른 DI 프레임워크로 바꾸기로 결정하더라도, 접하는 모든 문제에 도움이 되는 우수한 OOO 설계 관행(예: 인터페이스, 계층, 관심사 분리)을 장려합니다.

업데이트: 이 질문과 답변은 2014년에 5년이 되었습니다.그 사이에 프로그래밍과 애플리케이션 개발의 세계가 크게 변화했다고 말할 필요가 있다.

더 이상 Java 또는 C#, Spring 또는 EJB 중에서 선택할 수 없습니다.vert.x를 사용하면 Java EE를 모두 회피할 수 있습니다.애플리케이션 서버 없이도 확장성이 뛰어난 다중 언어 애플리케이션을 작성할 수 있습니다.

업데이트 : 2016년 3월입니다.Spring Boot은 Java EE 앱 서버 없이도 애플리케이션을 쓸 수 있는 더 나은 방법을 제공합니다.실행 가능한 JAR을 생성하여 JVM에서 실행할 수 있습니다.

Oracle이 Java EE 스펙을 계속 지원할 수 있는지 궁금합니다.웹 서비스는 EJB를 대신하고 있습니다.EJB 솔루션에 문제가 있다.(제 의견일 뿐입니다.)

먼저, 명확하게 말씀드리면, 저는 당신이 봄을 사용하지 말라는 것이 아니라, 당신이 몇 가지 장점을 요구하기 때문에, 적어도 두 가지는 다음과 같습니다.

  • EJB 3은 표준이지만 봄은 표준이 아니며(사실상의 표준이기는 하지만 동일하지는 않음) 이는 가까운 미래에 변하지 않을 것입니다.Spring 프레임워크는 임의의 어플리케이션서버에서 사용할 수 있지만 Spring 어플리케이션은 Spring 자체와 Spring에 통합하도록 선택한 특정 서비스에 모두 잠겨 있습니다.

  • Spring 프레임워크는 애플리케이션 서버 및 서비스 라이브러리 위에 있습니다.서비스 통합 코드(예: 데이터 액세스 템플릿)는 프레임워크에 상주하며 애플리케이션 개발자에게 노출됩니다.이와는 대조적으로, EJB 3 프레임워크는 애플리케이션 서버에 통합되고 서비스 통합 코드는 인터페이스 뒤에 캡슐화됩니다.따라서 EJB 3 벤더는 애플리케이션 서버 수준에서 작업함으로써 성능과 개발자 경험을 최적화할 수 있습니다.예를 들어 JPA 엔진을 JTA 트랜잭션 관리에 밀접하게 연결할 수 있습니다.또 다른 예는 EJB 3 개발자들에게 투명한 클러스터링 지원입니다.

EJB 3은 완벽하지는 않지만 일부 기능이 부족합니다(예: 단순한 POJO와 같은 관리되지 않는 구성 요소의 주입).

파스칼의 지적은 타당하다.그러나 봄을 지지하는 다음과 같은 것들이 있다.

  • EJB 사양은 실제로 약간 느슨하기 때문에 다양한 애플리케이션 서버에서 다양한 동작을 관찰할 수 있습니다.물론 대부분의 경우 그렇지는 않겠지만, 저는 "어두운 구석"에 대해 그런 문제가 있었습니다.

  • 봄에는 봄 테스트, AOP, MVC, JSF 통합 등 많은 추가 혜택이 있습니다.EJB에는 이러한 요소(예: 인터셉터)가 몇 개 있지만, 제 생각에는 그렇게 많이 개발되지는 않았습니다.

결론적으로, 그것은 주로 당신의 정확한 경우에 달려있다.

스프링은 EJB를 대체하기 위한 것이 아니라 이를 보완하기 위한 것입니다.스프링은 EJB 위에 있는 레이어입니다.아시다시피 EJB의 코딩은 API를 사용하여 이루어지며, 이는 Spring 프레임워크를 사용하여 API에 모든 것을 구현해야 한다는 것을 의미합니다.보일러 플레이트 코드를 만들고, 그 판을 가져와서 거기에 뭔가를 추가하면 모든 게 끝이야.내부적으로 스프링은 EJB와 연결되어 있습니다. EJB가 없었다면 스프링은 존재하지 않았을 것입니다.

스프링을 사용하는 주된 장점은 클래스 간에 커플링이 전혀 없다는 것입니다.

언급URL : https://stackoverflow.com/questions/1779169/spring-vs-ejb-can-spring-replace-ejb

반응형