Perbedaan Spring, Spring Web MVC, dan Spring Boot

Perbedaan Spring, Spring Web MVC, dan Spring Boot


1. Spring Framework

Spring adalah kerangka kerja Java yang menyediakan berbagai modul untuk membangun aplikasi enterprise-grade. Modul-modulnya meliputi Spring CoreSpring AOPSpring Security, dan lainnya. Spring adalah dasar dari ekosistem yang lebih besar, termasuk Spring Web MVC dan Spring Boot.

Fitur Utama Spring Framework:

  • Dependency Injection (DI) untuk mengelola objek dan siklus hidupnya.
  • Modul modular (Spring Core, AOP, Security, dll.).
  • Cocok untuk berbagai jenis aplikasi, termasuk aplikasi non-web.

Contoh Implementasi Spring (DI dengan konfigurasi XML):

xml
----------—----------------------------------

<!-- beans.xml --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="myService" class="com.example.MyService" /> </beans>
java
-----------------—---------------------
public class MyService {
public void doSomething() { System.out.println("Service is working!"); } } public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); MyService service = context.getBean(MyService.class); service.doSomething(); } }

2. Spring Web MVC

Spring Web MVC adalah modul dalam Spring Framework untuk membangun aplikasi berbasis web menggunakan pola Model-View-Controller (MVC). Ini menyediakan fitur seperti dispatcher servletcontrollerview resolvers, dan sebagainya.

Fitur Utama Spring Web MVC:

  • Membantu membangun aplikasi web berbasis REST atau berbasis UI.
  • Dukungan penuh untuk anotasi seperti @Controller dan @RequestMapping.
  • Konfigurasi berbasis XML atau Java.

Contoh Implementasi Spring Web MVC:

java
----------------------------------------
@Controller
public class HomeController { @RequestMapping("/home") public String home(Model model) { model.addAttribute("message", "Welcome to Spring Web MVC!"); return "home"; // Nama view (home.jsp) } }
xml
-----------------------------------
<!-- web.xml -->
<web-app> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
xml
------------------------------------
<!-- dispatcher-servlet.xml -->
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> </beans>

3. Spring Boot

Spring Boot adalah kerangka kerja berbasis Spring yang dirancang untuk menyederhanakan pengembangan aplikasi. Spring Boot menghilangkan boilerplate konfigurasi dengan menyediakan starter dependenciesembedded server, dan konfigurasi otomatis (auto-configuration).

Fitur Utama Spring Boot:

  • Starter Dependencies untuk mempermudah pengelolaan library.
  • Embedded Server (Tomcat, Jetty, atau Undertow) untuk menjalankan aplikasi tanpa konfigurasi tambahan.
  • Konfigurasi otomatis sehingga Anda tidak perlu membuat banyak file konfigurasi.
  • Spring Boot Actuator untuk memantau aplikasi.

Contoh Implementasi Spring Boot:

java
--------------------------------------
@SpringBootApplication
public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @RestController public class HelloController { @GetMapping("/hello") public String sayHello() { return "Hello, Spring Boot!"; } }

File application.properties (opsional):

properties
--------------------------------------
server.port=8081

Jalankan aplikasi dengan satu file, dan Spring Boot secara otomatis mengatur server, dependensi, dan konfigurasi.


Perbandingan Singkat

FiturSpringSpring Web MVCSpring Boot
TujuanKerangka kerja inti (modular)Pembangunan aplikasi web MVCSimplifikasi pengembangan aplikasi Spring
KonfigurasiManual (XML/Java)Manual (XML/Java)Otomatis dengan starter dan embedded server
FokusAplikasi umumAplikasi berbasis web (REST/UI)Semua jenis aplikasi, dengan konfigurasi minimal
Embedded ServerTidak adaTidak adaAda (Tomcat default)
Cocok UntukEnterprise aplikasi kompleksAplikasi web berbasis MVCAplikasi cepat dan mudah di-deploy

Kesimpulan:

  • Gunakan Spring Framework untuk aplikasi kompleks dengan kebutuhan spesifik modul.
  • Gunakan Spring Web MVC untuk membangun aplikasi web berbasis MVC.
  • Gunakan Spring Boot untuk pengembangan aplikasi yang cepat, sederhana, dan modern.

Comments

Popular posts from this blog

create image slider using phyton in web

Tahukah kamu Algoritma Genetika dan Penerapannya dalam Industri

create animated futuristic profile card using html+css+js

CRUD SPRING REACTIVE WEBFLUX +Mongo DB

Top 7 Digital Transformation Companies

100 perusahaan perangkat lunak (software) populer dari Eropa dan Amerika yang memiliki kehadiran atau operasional di Indonesia.

TOP 8 Framework Populer menggunakan bahasa .NET

Python Date and Time Manipulation

TOP 5 Trends Programming 2024

Daftar Kata Kunci (Keyword) dalam Bahasa Pemrograman Python