Spring MVC 또는 Spring Boot [닫기]


114

대기업 (웹) 프로젝트의 경우 Spring MVC 또는 Spring-Boot를 사용하는 것이 좋습니까?

구성 측면에서 Spring-Boot는 Spring MVC에 비해 매우 쉽습니다.

Spring-Boot를 사용하면 Spring MVC와 동일한 이점을 얻을 수 있는지 궁금합니다.

추천 메뉴가 무엇인가요?


29
선택은 아닙니다 사이 MVC 및 부팅 부팅 때문에 MVC를 사용하는 (그리고 그것을 자동 구성) 할 수 있습니다 . "Boot 또는 Boot-less?"를 의미하는 경우 기업이 혁신 (및 관련 위험)에 얼마나 개방적인지에 따라 다릅니다. 어느 쪽이든, 추천을 요청하는 것입니다 오프 주제 여기.
kryger 2015

당신의 응답을 주셔서 감사합니다. 나는 spring boot가 spring mvc로 구성 될 수 있다는 것을 깨달았다. 그러나 Spring-Boot 또는 Spring MVC를 사용할지 혼동됩니다. 둘 다 동일한 특성을 가지고 있습니다 (Spring boot는 설정하기 쉽습니다). 당신이 사용하는 경험에서?
디에고

1
스프링 부트는 애플리케이션을 구성하는 데 드는 시간을 절약하고 기본 빈을 갖고 종속성도 관리합니다. 그러나 spring-boot와 spring-mvc는 다른 목표를 가지고 있습니다. spring-mvc와 함께 spring-boot를 사용하려는 경우 사용자 지정 구성을 재정의하지 않는 한 아무것도 설정할 필요가 없습니다.
Eddú Meléndez 2015

당신의 응답을 주셔서 감사합니다. 내 미래 프로젝트에서는 Spring-Boot를 사용합니다. Spring-Boot는 구성하기 쉽고 많은 시간을 절약 할 수 있다고 생각합니다.
Diego

2
그리고 스프링 부팅, 참조 전쟁 포장 및 외부 서블릿 컨테이너와 호환되지 않습니다 실행 항아리와 전쟁 파일을 포장 58.2
니콜라스 Labrot

답변:


106

내 개인적인 조언은 여러 가지 이유로 Spring Boot를 확실히 사용하라는 것입니다.

  1. 첫 번째는 Boot가 "봄의 미래"라는 것입니다. 즉, Boot를 사용하면 Spring 커뮤니티의 많은 노력으로부터 혜택을받을 수 있습니다. 오늘날 대부분의 Spring 프로젝트는 Boot와 완전히 통합되어 있으며 커뮤니티에서도 Boot를 기반으로 많은 애플리케이션을 개발하기 시작합니다. 예를 들어 관리 및 모니터링에 사용됩니다. Spring Boot Admin 을 보도록 제안 할 수 있습니다.

  2. Spring Boot를 사용하면 매우 유용한 프로덕션 준비 기능으로 애플리케이션을 개선하는 관리 및 모니터링을위한 액추에이터 및 원격 쉘과 같은 매우 훌륭하고 유용한 기능을 활용할 수 있습니다.

  3. 매우 훌륭하고 강력한 속성 및 구성 제어- application.properties/yml 매우 간단하고 인상적인 방법으로 응용 프로그램을 구성 하고 부팅을 확장 할 수 있습니다 . 재정의 측면에서 관리가 매우 강력합니다.

  4. 그것은 최초의 마이크로 서비스 준비 플랫폼 중 하나이며, 요즘에는 이것이 최고라고 생각합니다! 부팅을 사용하여 마이크로 서비스 프로젝트를 빌드하지 않더라도 위에서 설명한 모든 기능의 이점을 얻을 수있는 자동 일관성 jar가있는 현대적인 접근 방식을 사용하거나 원하는 경우 클래식 전쟁으로 패키징하고 원하는 컨테이너에 전쟁을 전개하십시오.

  5. 프로젝트의 시작 및 구성 단계를 크게 줄여주는 구성에 대한 지능적이고 규칙적인 접근 방식을 사용합니다. 실제로 종속성 관리를 단순화하는 스타터 Maven 또는 Gradle 종속성 세트가 있습니다. 그런 다음 자동 구성 특성을 사용하면 Spring 4의 조건부 구성 프레임 워크를 통해 도입 된 많은 표준 구성에서 이점을 얻을 수 있습니다. 부트 종속성의 자동 구성 JAR. Spring은 오픈 소스이며 코드를 볼 수 있습니다. 또한 내 의견으로는 문서가 좋습니다.

  6. Spring initializer는 다음 링크에서 얻을 수있는 멋진 도구입니다. https://start.spring.io/ 는 프로젝트를 매우 빠르게 생성 할 수있는 매우 멋진 도구입니다.


이 반성이 최선의 해결책을 결정하는 데 도움이되기를 바랍니다.


1
답변 감사합니다. 여기에 약간의 혼란이 있습니다. persistence.xml구성 파일과 다른 많은 기능 을 사용할 필요가 없기 때문에 프로젝트에서 Spring 4를 사용하고 싶습니다 . Spring Boot에서 Spring 4의 기능을 사용할 수 있습니까? 그렇다면 어떻게하는지
바이퍼

2
나는 당신이 꽤 바닐라 일을 할 계획이라면 동의하는 경향이 있습니다. 부팅을 시도한 횟수는 두통을 유발하고 부팅은 내가 가진 의존성에 대해 너무 현명 해 지려고하고 결국에는 물건을 켜는 것보다 물건을 끄는 데 더 많은 일을해야하기 때문에 화면에 소리를 지 릅니다. 부트리스 프로젝트를 사용합니다. 악몽으로 끝나는 몇 가지 작업은 db 캐시가 필요한 LDAP에서 작업하려고하거나 둘 이상의 DataSource를 구성하여 내가 알지 못하는 사이에 JdbcTemplate 및 최대 절전 모드 인스턴스를 만들려고 시도하고 심지어 h3 데이터베이스를 자체적으로 시작하려고 시도하는 것입니다.
Brett Ryan

1
속성 구성도 제어 방법을 알아 내지 못한 것입니다. 부팅없는 프로젝트에서는 JSP 및 SpEL에서 사용할 수 있지만 부팅으로 동일한 작업을 수행하는 방법을 알아낼 수없는 내 앱 속성 파일의 속성 읽기에 대한 오버로드 지원이있는 AppConfig 클래스를 만듭니다.
Brett Ryan

1
이 답변이 여전히 유효합니까 (6 개월 후) 나는 이것을 조사하고 있으며 사람들이 멋진 Spring Boot를 가지고 있는데 왜 여전히 Spring을 사용하는지 이해하지 못합니다. 제 말은 제가 Spring Boot를 매우 좋아한다는 것을 의미합니다. 스스로를 구성하는 지능형 소프트웨어에 대한 아이디어는 저에게 매우 훌륭하지만 매우 혼란 스럽습니다! 다시 한 번 사람들은 멋진 Spring Boot를 가지고 있는데도 왜 여전히 Spring을 사용합니까?
Ahmad Hajjar 2016 년

1
@AhmadHajjar, 새 프로젝트의 경우 Spring Boot와 함께 사용할 것입니다. 현재는 완전히 성숙한 도구입니다. 그러나 사람들은 여전히 ​​평범한 Spring 프로젝트를 유지해야한다는 점을 명심하십시오. 그들 중 일부는 Boot로 이동하기 직진 할 수 있고 다른 일부는 마이그레이션 프로세스를 고통스럽게 만들 정도로 너무 클 수 있습니다.
Xtreme Biker

39

Spring Boot는 Spring MVC를 사용합니다! 자동 구성되어 spring-boot-starter-web jar를 가져올 때 사용할 준비가되었습니다. 따라서 기본적으로 Spring Boot를 사용할지 아니면 Spring 애플리케이션을 수동으로 설정할지에 대해 이야기하고 있습니다.


4
Yep _ + 1, Spring 부트는 자동 구성 도구, Spring mvc는 웹 프레임 워크
Plain_Dude_Sleeping_Alone

@Plain_Dude_Sleeping_Alone Spring MVC가 프레임 워크라는 것을 이해합니다. Spring Boot는 자동 구성 도구 일 뿐이며 프레임 워크로 간주 할 수도 있습니까?
Jesse

@Jesse, 둘 다 도구 또는 프레임 워크로 간주 될 수 있습니다. 그러나 사람들이 여기서 강조하는 것은 스프링 부트가 스프링 mvc 웹 프레임 워크를위한 도구라는 것입니다. Spring mvc에 필요한 준비된 구성을 제공하지만, booty 자체는 프레임 워크의 형태입니다. 마지막으로, 내 영어가 너무 나빠서 이미 당신의 얼굴을 태울 수 있습니다. Hehe
Plain_Dude_Sleeping_Alone

24

확실히 Spring Boot로 갈 수 있습니다. 엔터프라이즈 애플리케이션 구축을 위해 이미 Spring Boot를 사용하기 시작했습니다. 아래에 몇 가지를 나열하는 많은 장점이 있습니다.

  1. 프로젝트 구성은 매우 간단합니다. XML 파일을 유지할 필요가 없습니다. 여러분이 알아야 할 것은 application.properties 파일을 얼마나 효율적으로 사용할 수 있는지뿐입니다 .

  2. 많은 기본 구현을 제공합니다. 예를 들어 이메일을 보내야하는 경우 기본 구현을 제공합니다. JavaMailSender

  3. Spring Hibernate와 JPA 통합은 매우 간단합니다.

이와 같이 필요에 따라 탐색 할 수있는 것이 많습니다.


설명해 주셔서 대단히 감사합니다
Diego

당신이 XML 자세한 정보를 처리하지 않아도 그들은 마이크로 서비스 아키텍처를 활용하기 때문에 봄 부팅은 항상 선호
JorgeTovar

10

@kryger가 말했듯이 Spring MVC를 스프링 부트와 함께 사용할 수 있으며, 그들 사이에 배타적이지 않으며 구성이 더 쉬울 것입니다. 또한 템플릿 프레임 워크 인 http://www.thymeleaf.org/ 를 사용하는 것이 좋습니다 . 그것으로 작업하는 것은 JSP로 작업하는 것과 비슷하지만 thymeleaf는 HTML과 원활하게 통합되므로 코드가 매우 깔끔해 보이고 많은 유용한 기능을 추가 할 수 있습니다.


8

Spring Boot는 MVC보다 더 많은 장점과 내장 기능을 가지고 있기 때문에 MVC보다 더 유용하다고 생각합니다. Spring Boot에서는 대부분의 작업이 자동으로 구성되며 MVC 에서처럼 XML을 작성할 필요가 없으므로 시간을 절약 할 수 있습니다.

Spring Boot는 Tomcat과 같은 서버 런타임과 함께 war 파일을 번들로 제공합니다. 이를 통해 웹 애플리케이션을 쉽게 배포하고 배포 할 수 있습니다. 업계가 컨테이너 기반 배포로 이동함에 따라 Spring Boot는 이러한 맥락에서도 유용합니다.

Spring MVC는 웹 애플리케이션 프레임 워크입니다. Spring Boot없이 Spring에서 모든 작업을 수행 할 수 있지만 Spring Boot를 사용하면 작업을 더 빨리 완료 할 수 있습니다.

Spring 부트는 Spring 종속성을 단순화하고 더 이상 버전 충돌이 없으며 애플리케이션 컨테이너없이 명령 줄에서 직접 실행할 수 있으며 더 적은 코드로 더 많이 빌드 할 수 있습니다. XML, 자동 구성, 실행을위한 유용한 도구가 필요하지 않습니다. 프로덕션, 데이터베이스 초기화, 환경 별 구성 파일, 메트릭 수집.

Spring Boot의 기본 사항은 여기 에서 찾을 수 있습니다.


답변 감사합니다. 스프링 부츠에 대한 이해에 큰 도움이되었습니다. 내가 헷갈리는 한 가지는 내가 사용중인 스프링 버전을 변경해야한다면 스프링 부트로 어떻게해야하나요? 스프링 버전이 정의 된 곳을 볼 수 없습니다.
독사는

프로젝트에서 maven을 사용하지 않았습니까? @viper
erginduran

예, 나는 maven을 사용했습니다. 하지만 스프링 부트를 사용하면 스프링 종속성을 볼 수 없습니다.
바이퍼
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.