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.
No comments:
Post a Comment