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 Core, Spring AOP, Spring 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 servlet, controller, view 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----------------------------------------@Controllerpublic 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</serv
let-name> <servlet-class>org. springframework.web.servlet. DispatcherServlet</servlet- class> <load-on-startup>1</load-on- startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</serv let-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 dependencies, embedded 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--------------------------------------@SpringBootApplicationpublic 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
Fitur | Spring | Spring Web MVC | Spring Boot |
---|---|---|---|
Tujuan | Kerangka kerja inti (modular) | Pembangunan aplikasi web MVC | Simplifikasi pengembangan aplikasi Spring |
Konfigurasi | Manual (XML/Java) | Manual (XML/Java) | Otomatis dengan starter dan embedded server |
Fokus | Aplikasi umum | Aplikasi berbasis web (REST/UI) | Semua jenis aplikasi, dengan konfigurasi minimal |
Embedded Server | Tidak ada | Tidak ada | Ada (Tomcat default) |
Cocok Untuk | Enterprise aplikasi kompleks | Aplikasi web berbasis MVC | Aplikasi 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
Post a Comment