나는 방금 Spring을 배우기 시작했다. 다음 단계에서는 더 큰 웹 응용 프로그램을 개발하고 싶습니다.
이제 Spring Boot 또는 Spring MVC로 시작할지 궁금합니다. 나는 이미 몇 가지 내용을 읽었지만 둘 다 비슷해 보이기 때문에 혼란 스럽습니다.
그렇다면이 둘의 차이점은 무엇입니까?
답변
- Spring MVC 는 스프링 프레임 워크에 의해 관리되고 서블릿에 기반한 완전한 HTTP 지향 MVC 프레임 워크입니다. JavaEE 스택의 JSF와 같습니다. 그중 가장 인기있는 요소는 주석이 달린 클래스로
@Controller
, 다른 HTTP 요청을 사용하여 액세스 할 수있는 메소드를 구현합니다.@RestController
REST 기반 API를 구현 하는 것과 동일 합니다. - 스프링 부트 는 애플리케이션을 신속하게 설정하는 유틸리티로 스프링 구동 애플리케이션을 구축하기 위해 기본 구성을 제공합니다. 아시다시피 Spring 은 spring-core , spring-data ,
spring-web (Spring MVC 포함) 등 다양한 모듈을 우산 아래에 통합합니다 . 이 도구를 사용하면 Spring에 몇 개를 사용할 것인지 알 수 있으며 빠른 설정을 할 수 있습니다 (나중에 직접 변경할 수 있음).
따라서 Spring MVC는 웹 애플리케이션에서 사용되는 프레임 워크이고 Spring Boot는 Spring 기반 프로덕션 지원 프로젝트 초기화 프로그램입니다. SO 의 Spring Boot 태그 위키 뿐만 아니라 Spring MVC 태그 위키 를 방문하는 것이 유용 할 수 있습니다 .
답변
Spring MVC 와 Spring Boot 는 다른 답변에 잘 설명되어 있으므로 반복하지 않고 세부 사항으로 바로 넘어갑니다. 스프링 부트 와 스프링 MVC 는 비슷하거나 상호 배타적이지 않다. Spring을 사용하여 웹 애플리케이션 개발을 수행하려면 Spring MVC를 사용하십시오 . 그러면 귀하의 질문은 스프링 부트 사용 여부가됩니다 .
일반적인 Spring 애플리케이션을 개발하거나 Spring을 배우기 시작하려면 Spring Boot를 사용하는 것이 좋습니다. 그것은 작업을 상당히 용이하게하고, 생산 준비가되어 있으며, 빠르게 채택되고 있습니다.
STS (Spring Tool Suite)에는 스프링 부트 프로젝트를 생성하는 마법사와 스프링 MVC 프로젝트를 생성하는 마법사가 있기 때문에 초보자가 종종이 질문을하는 것을 보았습니다. 따라서 스프링 부트 프로젝트를 만들고 웹 에서 모듈로 웹 을 선택하는 것이 좋습니다 .
답변
답변
간단히 말해서 다음과 같이 말할 수 있습니다.
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는 Opinionated 프레임 워크이므로 빠른 개발을 고려하고 구성에 필요한 시간을 줄이며 커뮤니티를 매우 잘 지원합니다.
답변
Spring MVC
MVC (Model-View-Controller) 패턴을 사용하는 애플리케이션의 설계 및 개발을 대상으로하는 Spring Framework의 하위 프로젝트입니다. Spring MVC는 Spring Framework 및 전 이적으로 대부분의 다른 하위 프로젝트와 완벽하고 완전하게 통합되도록 설계되었습니다.
Spring Boot
이 기사 에서 Spring Engineering 팀 이 잘 이해할 수 있습니다 . 그것은 아마도 의견이 있습니다. 즉, 특정 스타일의 빠른 개발을 강력하게 옹호하지만, 원한다면 규칙에 대한 예외를 수용 할 수 있도록 충분히 설계되었습니다. 요컨대, 구성 방법론에 대한 규약은 보증 될 때 규약을 깨뜨릴 필요성을 기꺼이 이해합니다.
답변
Spring, Spring MVC 및 Spring Boot를 차별화하는 요점은 다음과 같습니다.
봄 :
- 주요 차이점은 “테스트 가능성”입니다.
- 봄에는 DI와 IOC가 함께 제공됩니다. 시스템이 수행 한 모든 노력을 통해 어떤 종류의 작업도 수행 할 필요가 없습니다 (일반적으로 우리는 클래스의 객체를 수동으로 정의하지만 Di를 통해 @Service 또는 @Component로 주석을 달았습니다-일치하는 클래스를 관리하십시오).
- @Autowired 주석을 통해 단위 테스트 시간에 쉽게 mock ()합니다.
- 복제 및 배관 코드. JDBC에서는 모든 종류의 데이터베이스 작업을 수행하기 위해 동일한 코드를 여러 번 작성합니다. Spring은 Hibernate 및 ORM을 통해 해당 문제를 해결합니다.
- 다른 프레임 워크와의 우수한 통합 최대 절전 모드, ORM, Junit 및 Mockito와 같습니다.
스프링 MVC
- Spring MVC 프레임 워크는 시설 HTTP 지향 웹 애플리케이션 개발을 제공하는 스프링 모듈입니다.
- Spring MVC는 입력 로직 (컨트롤러), 비즈니스 로직 (모델) 및 UI 로직 (뷰)에서 명확한 코드 분리를가집니다.
- Spring MVC 패턴은 유연하고 느슨하게 결합 된 웹 애플리케이션을 개발하는 데 도움이됩니다.
- 필요에 따라 응용 프로그램을 사용자 정의 할 수있는 다양한 하드 코딩 된 방법을 제공하십시오.
스프링 부트 :
- 하나의 큰 웹 응용 프로그램을 관리하는 대신 자체 범위 및 기능을 가진 다른 마이크로 서비스로 개별적으로 나누도록 빠른 응용 프로그램을 만듭니다.
- Web Jar를 사용한 자동 구성 : 일반적인 Spring에는 DispatcherServlet, Component Scan, View Resolver, Web Jar, XML과 같은 많은 구성이 있습니다. (예를 들어 Entity Manager Transaction Manager Factory 데이터 소스를 구성하려는 경우). 클래스 경로를 사용할 수 없을 때 자동으로 구성하십시오.
- 기본 스프링 스타터와 함께 제공되며 기본 스프링 구성 종속성 (Spring Core, Web-MVC, Jackson, Tomcat, Validation, Data Binding, Logging 등)이 제공됩니다. 버전 관리 문제도 걱정하지 마십시오.
(진화 : Spring-> Spring MVC-> Spring Boot, 최신 버전은 이전 버전 기능과 호환됩니다.) 참고 : 모든 포인트를 포함하지는 않습니다.
답변
SpringBoot는 실제로 보일러 구성을 줄이고 애플리케이션을 시작하는 가장 쉽고 빠른 방법을 제공하도록 미리 구성되어 있습니다.
SpringBoot는 개발자가 구성하는 데 어려움을 겪고 있습니다.
암시 적으로 SpringBoot는 bean, controller, services, jpa 등과 같은 Spring 프레임 워크 개념을 기반으로합니다.
SpringBoot는 Spring의 래퍼라고 말할 수 있습니다.
SpringBoot에서 기본적으로 서버 포트는 8080이지만 변경하려면 application.properties로 이동하여 작성하십시오.
server.port = 8084