การพึ่งพา Maven Spring-Web กับ Spring-webmvc


103

ความแตกต่างระหว่างการอ้างอิงต่อไปนี้คืออะไร?

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

เทียบกับ

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

ถ้าฉันรวมไว้spring-webmvcคนเดียวspring-webจะถูกเพิ่มโดยปริยาย

เราควรใช้spring-webคนเดียวเมื่อไหร่?

คำตอบ:


137

spring-web ให้การรวม HTTP หลักรวมถึงตัวกรอง Servlet ที่ใช้งานง่าย Spring HTTP Invoker โครงสร้างพื้นฐานเพื่อรวมเข้ากับเว็บเฟรมเวิร์กอื่น ๆ และเทคโนโลยี HTTP เช่น Hessian, Burlap

spring-webmvcเป็นการนำ Spring MVC มาใช้ spring-webmvc ขึ้นอยู่กับบนจึงรวมไว้สกรรมกริยาจะเพิ่มspring-web spring-webคุณไม่จำเป็นต้องเพิ่มspring-webอย่างชัดเจน

คุณควรพึ่งพาเฉพาะในspring-webกรณีที่คุณไม่ได้ใช้ Spring MVC แต่ต้องการใช้ประโยชน์จากเทคโนโลยีที่เกี่ยวข้องกับเว็บอื่น ๆ ที่ Spring รองรับ


11
เห็นด้วย +1 แต่สถานการณ์กรณีที่หายาก: การรวมอินเทิร์นspring-webmvcจะเพิ่มspring-webแต่ถ้าคุณมีเวอร์ชัน spring-webmvc เป็น 4.0.2 และคุณเพิ่มการอ้างอิงอื่นให้พูดswagger-springmvcเวอร์ชัน 0.8.8 จากนั้นจะเพิ่มspring-webเวอร์ชัน 3.2.x ในกรณีนี้คุณอาจได้รับข้อยกเว้นที่ไม่พบคลาสดังนั้นที่นี่คุณต้องเพิ่มspring-webและเวอร์ชันเป็น 4.0.2 อย่างชัดเจน เจอวันนี้
spiderman

7
@spiderman ฉันจะไม่รวมการspring-webพึ่งพาสกรรมกริยาในswagger-springmvc
Roger

@ tomasz-nurkiewicz ความแตกต่างระหว่าง spring-jms และโมดูลการส่งข้อความสปริง
ตำนาน

1
เมื่อคุณต้องการสร้างแอปพลิเคชันซึ่งจะเป็น API ที่เหลือและคุณไม่จำเป็นต้องมีมุมมอง (jsp) เลยคุณควรใช้อะไร? spring-web หรือ spring-webmvc?
Mohammad Eghlima

1
@MohammadEghlima ในกรณีนี้ให้ใช้ spring-web
leeCoder

7

จากเอกสารอย่างเป็นทางการ: โมดูลสปริงเว็บมีคุณสมบัติการรวมพื้นฐานบนเว็บเช่นฟังก์ชันการอัปโหลดไฟล์หลายส่วนและการเริ่มต้นคอนเทนเนอร์ IoC โดยใช้ตัวฟัง Servlet และบริบทแอปพลิเคชันที่เน้นเว็บ นอกจากนี้ยังมีไคลเอนต์ HTTP และส่วนที่เกี่ยวข้องกับเว็บของการสนับสนุนระยะไกลของ Spring

โมดูล spring-webmvc (หรือที่เรียกว่าโมดูล Web-Servlet) ประกอบด้วยการใช้ model-view-controller (MVC) ของ Spring และการใช้งาน REST Web Services สำหรับเว็บแอปพลิเคชัน เฟรมเวิร์ก MVC ของ Spring ให้การแยกระหว่างรหัสโมเดลโดเมนและแบบฟอร์มเว็บอย่างชัดเจนและผสานรวมกับคุณสมบัติอื่น ๆ ทั้งหมดของ Spring Framework

spring-webmvc-portlet module (หรือที่เรียกว่า Web-Portlet module) จัดเตรียมการนำ MVC ไปใช้ในสภาวะแวดล้อม Portlet และสะท้อนการทำงานของโมดูล spring-webmvc ที่ใช้ Servlet

https://docs.spring.io/spring/docs/4.3.22.RELEASE/spring-framework-reference/htmlsingle/#overview-web

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.