Programing

Spring MVC와 Spring Boot의 차이점

lottogame 2020. 5. 24. 10:46
반응형

Spring MVC와 Spring Boot의 차이점


나는 방금 Spring을 배우기 시작했다. 다음 단계에서는 더 큰 웹 응용 프로그램을 개발하고 싶습니다.

이제 Spring Boot 또는 Spring MVC로 시작할지 궁금합니다. 나는 이미 몇 가지 내용을 읽었지만 둘 다 비슷해 보이기 때문에 혼란 스럽습니다.

그렇다면이 둘의 차이점은 무엇입니까?


  • Spring MVC 는 스프링 프레임 워크에 의해 관리되고 서블릿에 기반한 완전한 HTTP 지향 MVC 프레임 워크입니다. JavaEE 스택의 JSF와 같습니다. 그중 가장 인기있는 요소는 주석이 달린 클래스로 @Controller, 다른 HTTP 요청을 사용하여 액세스 할 수있는 메소드를 구현합니다. @RestControllerREST 기반 API를 구현 하는 것과 동일 합니다.
  • 스프링 부트 는 애플리케이션을 신속하게 설정하는 유틸리티이며 스프링 구동 애플리케이션을 구축하기 위해 기본 구성을 제공합니다. 아시다시피 Spring spring-core , spring-data , spring-web (Spring MVC 포함) 등 다양한 모듈을 우산 아래에 통합합니다 . 이 도구를 사용하면 Spring에 몇 개를 사용할지 알 수 있으며 빠른 설정을 할 수 있습니다 (나중에 직접 변경할 수 있음).

따라서 Spring MVC는 웹 애플리케이션에서 사용되는 프레임 워크이며 Spring Boot는 Spring 기반 프로덕션 지원 프로젝트 초기화 프로그램입니다. SO Spring Boot 태그 위키 뿐만 아니라 Spring MVC 태그 위키방문하는 것이 유용 할 수 있습니다 .


Spring MVCSpring Boot 는 다른 답변에 잘 설명되어 있으므로 반복하지 않고 세부 사항으로 바로 넘어갑니다. 스프링 부트스프링 MVC 는 비슷하거나 상호 배타적이지 않다. Spring을 사용하여 웹 애플리케이션 개발을 수행하려면 Spring MVC를 사용하십시오 . 그러면 귀하의 질문은 스프링 부트 사용 여부가됩니다 .

일반적인 Spring 애플리케이션을 개발하거나 Spring을 배우기 시작하려면 Spring Boot를 사용하는 것이 좋습니다. 그것은 작업을 상당히 용이하게하고, 생산 준비가되어 있으며 빠르게 채택되고 있습니다.

STS (Spring Tool Suite)에는 스프링 부트 프로젝트를 생성하는 마법사와 스프링 MVC 프로젝트를 생성하는 마법사가 있기 때문에 초보자가 종종이 질문을하는 것을 보았습니다. 따라서 스프링 부트 프로젝트를 만들고 에서 모듈로 선택하는 것이 좋습니다 .


Spring MVCMVC (Model-View-Controller) 패턴을 사용하는 애플리케이션의 설계 및 개발을 대상으로하는 Spring Framework의 하위 프로젝트입니다. Spring MVC는 Spring Framework 및 전 이적으로 대부분의 다른 하위 프로젝트와 완벽하고 완전하게 통합되도록 설계되었습니다.

Spring BootSpring Engineering 팀 이이 기사 에서 상당히 잘 이해할 수 있습니다 . 그것은 아마도 의견이 많을 것입니다. 즉, 특정 스타일의 빠른 개발을 강력하게 옹호하지만, 원한다면 규칙에 대한 예외를 수용 할 수 있도록 충분히 설계되었습니다. 요컨대, 구성 방법론에 대한 규약은 보증 될 때 규약을 깨뜨릴 필요성을 기꺼이 이해합니다.


Spring Boot와 Spring Boot를 구별하는 요점은 다음과 같습니다.

봄 :

  1. 주요 차이점은 "테스트 가능성"입니다.
  2. 봄에는 DI와 IOC가 함께 제공됩니다. 시스템이 수행 한 모든 노력을 통해 어떤 종류의 작업도 수행 할 필요가 없습니다 (일반적으로 우리는 클래스의 객체를 수동으로 정의하지만 Di를 통해 @Service 또는 @Component로 주석을 달았습니다-일치하는 클래스를 관리하십시오).
  3. @Autowired 주석을 통해 단위 테스트 시간에 쉽게 mock ()합니다.
  4. 복제 및 배관 코드. JDBC에서는 모든 종류의 데이터베이스 작업을 수행하기 위해 동일한 코드를 여러 번 작성합니다. Spring은 Hibernate 및 ORM을 통해 해당 문제를 해결합니다.
  5. 다른 프레임 워크와의 우수한 통합 최대 절전 모드, ORM, Junit 및 Mockito와 같습니다.

스프링 부트 :

  1. 하나의 큰 웹 응용 프로그램을 관리하는 대신 자체 범위 및 기능을 가진 다른 마이크로 서비스로 개별적으로 나누도록 빠른 응용 프로그램을 만듭니다.
  2. Web Jar를 사용한 자동 구성 : 일반적인 Spring에는 DispatcherServlet, Component Scan, View Resolver, Web Jar, XML과 같은 많은 구성이 있습니다. (예를 들어 Entity Manager Transaction Manager Factory 데이터 소스를 구성하려는 경우). 클래스 경로를 사용할 수 없을 때 자동으로 구성하십시오.
  3. 기본 스프링 스타터와 함께 제공되며 기본 스프링 구성 종속성 (Spring Core, Web-MVC, Jackson, Tomcat, Validation, Data Binding, Logging 등)이 제공됩니다. 버전 관리 문제도 걱정하지 마십시오.

참고 : 모든 포인트가 포함되어 있지 않습니다.


SpringBoot는 실제로 보일러 구성을 줄이고 애플리케이션을 시작하는 가장 쉽고 빠른 방법을 제공하도록 미리 구성되어 있습니다.

SpringBoot는 개발자가 구성하는 데 어려움을 겪고있다.

암시 적으로 SpringBoot는 bean, controller, services, jpa 등과 같은 Spring 프레임 워크 개념을 기반으로합니다.

SpringBoot는 Spring의 래퍼라고 말할 수 있습니다.

SpringBoot에서 기본적으로 서버 포트는 8080이지만 변경하려면 application.properties로 이동하여 작성하십시오.

server.port = 8084


  • 스프링 부트를 사용하면 구성을 구축 할 필요가 없습니다. 이것은 프로젝트를 만들 때 자동으로 수행됩니다.

  • 스프링 MVC를 사용하는 경우 구성을 직접 빌드해야합니다. 더 복잡하지만 중요합니다.


Spring MVC 는 Spring Framework 하의 MVC (Model View Controller) 기반 웹 프레임 워크입니다. 서블릿 API에 구축 된 원래 웹 프레임 워크입니다. 웹 응용 프로그램을 작성하는 데 사용할 수있는 여러 기능을 제공합니다.

  • 역할의 명확한 분리. 컨트롤러, 유효성 검사기, 명령 개체, 양식 개체, 모델 개체, DispatcherServlet, 처리기 매핑, 뷰 확인자 등 각 역할은 특수한 개체로 수행 할 수 있습니다.
  • JavaBeans로서 프레임 워크 및 애플리케이션 클래스 모두를 강력하고 간단하게 구성합니다.
  • 맞춤형 바인딩 및 검증.

  • 사용자 정의 가능한 핸들러 매핑 및 뷰 해상도.

  • 강력한 테마 및 로컬 해상도 기능.

Spring Boot 는 Spring 기반 애플리케이션을 빌드하기위한 기본 구성을 제공하여 애플리케이션을 신속하게 설정하는 강력한 유틸리티입니다. Spring Boot의 기능 목록은 다음과 같습니다.

  • 마이크로 서비스 플랫폼을 사용할 수있는 최고의 제품 중 하나입니다.

  • 지능적인 컨피규레이션 방식 컨벤션 방식을 사용하여 프로젝트의 시작 및 구성 단계를 크게 줄입니다.

  • application.properties 또는 yml 파일을 사용한 강력하고 유연한 구성 관리

  • 자동 구성 모듈.

  • Spring Boot 스타터는 애플리케이션에 즉시 사용 가능한 자동 구성을 제공합니다.

  • 생산 준비 액추에이터 모듈.

  • 그것은 의견이있는 견해를 취함으로써 Spring 의존성을 단순화합니다.


간단히 말해서 다음과 같이 말할 수 있습니다.

Spring boot = Spring MVC + Auto Configuration(Don't need to write spring.xml file for configurations) + Server(You can have embedded Tomcat, Netty, Jetty server).

And Spring Boot is an Opinionated framework, so its build taking in consideration for fast development, less time need for configuration and have a very good community support.


Without repeating the same thing in previous answers, I'm writing this answer for the people who looking to starting a new project and don't know which is the best framework a is the best to start. If you are a beginner to this framework the best thing I prefer is Use spring boot(with STS /Spring Tool Suite). Because it helps a lot. Its do all configurations on its own. Additionally, use Hibernate with spring for built your databases. Then your application will be the best in present. I can guarantee that.

Since this is one of the best frameworks for JEE in present but it is gonna die future. There are lightweight alternatives coming up. So keep updated with your experience don't stick to one particular framework. The best thing is being fluent in concepts, not in the frameworks.

참고URL : https://stackoverflow.com/questions/32922914/difference-between-spring-mvc-and-spring-boot

반응형