스프링 MVC와 스프링부츠의 차이점
저는 이제 막 봄을 배우기 시작했어요.다음 단계에서는 더 큰 웹 어플리케이션을 개발하고 싶습니다.
Spring Boot부터 시작할지 Spring MVC부터 시작할지 고민 중입니다.이미 읽은 것도 있는데 둘 다 비슷해서 헷갈리네요.
그렇다면 이 둘의 차이점은 무엇일까요?
- Spring MVC는 Spring Framework에 의해 관리되며 Servlet에 기반을 둔 완전한 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 MVC 태그 Wiki 및 Spring Boot 태그 Wiki를 방문하면 도움이 될 수 있습니다.
Spring MVC와 Spring Boot는 다른 답변에 잘 설명되어 있기 때문에 반복하지 않고 바로 구체적인 내용으로 넘어가겠습니다.Spring Boot와 Spring MVC는 동등하거나 상호 배타적이지 않습니다.Spring을 사용하여 웹 어플리케이션 개발을 하려면 Spring MVC를 사용합니다.다음으로 스프링 부트를 사용할지 여부가 질문됩니다.
일반적인 Spring 어플리케이션 개발이나 Spring 학습을 시작할 때는 Spring Boot 사용을 권장합니다.이것은 작업을 상당히 쉽게 하고, 생산 준비가 되어 있으며, 빠르게 널리 채택되고 있습니다.
STS(Spring Tool Suite)에는 Spring Boot 프로젝트 작성용과 Spring MVC 프로젝트 작성용 두 개의 마법사가 있기 때문에 초보자가 이 질문을 하는 경우가 종종 있습니다.따라서 Spring Boot 프로젝트를 생성하여 모듈로 Web을 선택하는 것이 좋습니다.
간단히 말해서 다음과 같이 말할 수 있습니다.
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).
또한 Spring Boot는 오피니언이 있는 프레임워크이므로 신속한 개발, 구성 소요 시간 단축, 커뮤니티 지원 등을 고려한 구축입니다.
다음은 스프링, 스프링 MVC 및 스프링 부트를 구별하는 몇 가지 주요 포인트입니다.
스프링:
- 주요 차이점은 "시험 가능성"입니다.
- 봄은 국제올림픽위원회와 IOC와 함께 온다.시스템에서 수행하는 모든 작업을 통해 우리는 어떤 종류의 작업도 수행할 필요가 없습니다(일반적으로 우리는 클래스의 객체를 수동으로 정의하지만 Di를 통해 @Service 또는 @Component - matching 클래스로 주석을 달기만 하면 됩니다).
- @Autowired Annotation을 통해 유닛 테스트 시 쉽게 모킹()할 수 있습니다.
- 중복 및 배관 코드.JDBC에서는 동일한 코드를 여러 번 작성하여 데이터베이스 조작을 수행합니다.스프링에서는 하이버네이트와 ORM을 통해 이 문제를 해결합니다.
- 다른 프레임워크와의 뛰어난 통합.Hibernate, ORM, Junit, Mockito 등.
봄 MVC
- Spring MVC 프레임워크는 설비 HTTP 지향 웹 애플리케이션 개발을 제공하는 Spring 모듈입니다.
- 스프링 MVC는 입력 로직(컨트롤러), 비즈니스 로직(모델), UI 로직(뷰)에 대한 코드 구분이 명확합니다.
- 봄 MVC 패턴은 유연하고 느슨하게 결합된 웹 애플리케이션을 개발하는 데 도움이 됩니다.
- 필요에 따라 애플리케이션을 커스터마이즈할 수 있는 다양한 하드 코드 방법을 제공합니다.
스프링 부트:
- Quick Application을 생성하여 하나의 큰 웹 어플리케이션을 관리하는 것이 아니라 각각의 범위와 기능을 가진 다른 마이크로 서비스로 개별적으로 나눕니다.
- Web Jar를 사용한 자동 설정 : 보통 봄에는 Dispatcher Servlet, Component Scan, View Resolver, Web Jar, XML 등의 설정이 많이 있습니다(예를 들어 데이터 소스, Entity Manager Transaction Manager Factory를 설정하는 경우).클래스 경로를 사용하여 사용할 수 없는 경우 자동으로 구성합니다.
- 일부 기본 스프링 구성 종속성(Spring Core, Web-MVC, Jackson, Tomcat, 검증, 데이터 바인딩, 로깅 등)과 함께 제공됩니다.버전 관리 문제도 걱정하지 마십시오.
(진화: Spring -> Spring MVC -> Spring Boot 등 새로운 버전은 이전 버전의 기능과 호환성이 있습니다.)주의: 모든 점을 포함하는 것은 아닙니다.
Spring MVC는 Spring Framework의 서브프로젝트로 MVC(모델 뷰 컨트롤러) 패턴을 사용하는 애플리케이션의 설계 및 개발을 대상으로 합니다.봄 MVC 스프링 프레임워크
Spring BootSpring Engineering 팀이 이 기사를 통해 잘 이해할 수 있습니다.그것은 아마도 독단적인 것으로 보인다.즉, 특정 스타일의 급속한 발전을 강력히 옹호하지만, 원한다면 규칙의 예외를 수용할 수 있도록 충분히 잘 설계되어 있다.즉, 구성 방법론에 대한 관례로, 필요에 따라 규약을 깨야 한다는 것을 이해하려고 합니다.
Spring Boot은 실제로 보일러 구성을 축소하도록 사전 설정되어 있어 애플리케이션을 쉽고 빠르게 시작할 수 있습니다.
Spring Boot은 Spring이 아닌 자체 개발자의 구성 문제를 해결합니다.
암묵적으로 Spring Boot은 bean, controller, services, jpa 등의 스프링 프레임워크 개념을 기반으로 합니다.
Spring Boot은 Spring의 래퍼라고 할 수 있습니다.
SpringBoot에서는 서버의 기본 포트는 8080이지만 변경할 경우 application.properties로 이동하여 기입합니다.
server.port = 8084
스프링 부트를 사용하면 구성을 구축할 필요가 없습니다.이 작업은 프로젝트를 생성할 때 자동으로 수행됩니다.
스프링 MVC를 사용하는 경우 설정을 직접 구축해야 합니다.그것은 더 복잡하지만 매우 중요하다.
다음과 같이 생각하십시오.
Spring MVC는 MVC 아키텍처를 구현하기 위한 웹 기반 프레임워크입니다.
스프링 부트는 프로그래머를 위한 도구입니다.프로그래머는 프로그래밍에 집중해야 하고 툴은 구성에 집중해야 합니다.따라서 단순한 'Hello world'를 만들기 위해 다수의 xml을 구성하는 데 시간을 낭비할 필요가 없습니다.
답변에서 , 이전 답변에서 같은 것을 반복하지 않고,
새로운 프로젝트를 시작하려고 하는데 어떤 것이 당신의 프로젝트를 시작하기에 가장 좋은 프레임워크인지 모르는 사람들을 위해 이 답변을 씁니다.이 프레임워크의 초보자라면 STS/Spring Tool Suite와 함께 스프링 부트를 사용하는 것이 가장 좋습니다.많은 도움이 되기 때문이다.모든 설정은, 스스로 행해집니다.또한 데이터베이스 프레임워크로 spring-boot와 함께 휴지 상태를 사용합니다.이 조합으로 당신의 어플리케이션이 최고가 될 것입니다.그것은 내 경험으로 보증할 수 있다.
이 프레임워크도 JEE(현재는)에 가장 적합한 프레임워크 중 하나이지만 가까운 장래에 사라질 것입니다.경량 대안들이 나오고 있다.따라서 특정 프레임워크에 얽매이지 말고 자신의 경험을 최신 상태로 유지하십시오.가장 좋은 것은 틀이 아니라 개념에 능통한 것입니다.
스프링 MVC와 스프링 부트는 다른 용도로 존재합니다.그러므로, 서로 경쟁자로 비교하는 것은 현명하지 않다.
스프링 부츠란?
Spring Boot는 Spring 어플리케이션을 합리적인 디폴트로 패키징하기 위한 프레임워크입니다.이것은 무엇을 의미합니까?.Spring MVC, Spring Data, Hibernate 및 Tomcat을 사용하여 웹 애플리케이션을 개발 중입니다.이 응용 프로그램을 웹 서버에 패키징하고 배포하려면 어떻게 해야 합니까?현시점에서는 웹 서버에 전개하기 위한 설정이나 XML 파일 등을 수동으로 작성해야 합니다.
Spring Boot은 프로젝트의 제로 XML 구성을 통해 이를 실현합니다.도입 기술자, 웹 서버 등은 필요 없습니다.Spring Boot은 모든 의존성을 묶는 마법의 프레임워크입니다.마지막으로 웹 애플리케이션은 서버가 내장된 독립형 JAR 파일이 됩니다.
아직 어떻게 동작하는지가 불분명한 경우는, 스프링 부트를 사용한 마이크로 서비스 프레임워크의 개발에 대해 읽어보십시오.
봄 MVC란?
웹 응용 프로그램 구축을 지원하는 기존 웹 응용 프로그램 프레임워크입니다.이것은 Struts 프레임워크와 유사하다.
Spring MVC는 웹 응용 프로그램을 구축하는 데 사용되는 Java 프레임워크입니다.모델 뷰 컨트롤러 설계 패턴을 따릅니다.제어 반전, 의존성 주입과 같은 핵심 스프링 프레임워크의 모든 기본 기능을 구현합니다.
Spring MVC는 Dispatcher Servlet의 도움을 받아 스프링 프레임워크에서 MVC를 사용할 수 있는 우아한 솔루션을 제공합니다.여기서 Dispatcher Servlet은 수신 요청을 수신하여 컨트롤러, 모델, 뷰 등의 올바른 리소스에 매핑하는 클래스입니다.
이것이 차이를 이해하는 데 도움이 되기를 바랍니다.
한 번 덧붙이자면 Java Spring은 프레임워크이고 Java Spring Boot은 Addon을 통해 사전 구성 및 사용하기 쉬운 컴포넌트를 제공함으로써 가속화합니다.Java Spring Boot으로 넘어가기 전에 Java Spring의 기본 개념을 항상 숙지하는 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/32922914/difference-between-spring-mvc-and-spring-boot
'programing' 카테고리의 다른 글
| 돔 렌더링이 완료된 후 디렉티브를 실행하려면 어떻게 해야 합니까? (0) | 2023.02.26 |
|---|---|
| Angular에서의 지시 장치 테스트에서 서비스를 주입하는 방법JS (0) | 2023.02.26 |
| DB2와 Oracle 관점에서 CLOB와 BLOB의 차이점은 무엇입니까? (0) | 2023.02.26 |
| AngularJS - 함수를 지시어로 전달합니다. (0) | 2023.02.26 |
| Apache 프록시 뒤에 내장된 Tomcat을 사용한 Spring Boot (0) | 2023.02.26 |