

Là một framework phát triển ứng dụng phổ biến nhất cho ứng dụng doanh nghiệp trong Java
Là một nền tảng Java mã nguồn mở. Được viết đầu tiên bởi Rod Johnson và được phát hành lần đầu dưới phiên bản Apache 2.0 vào tháng 6 năm 2003
Có các tính năng cốt lõi có thể được sử dụng trong việc phát triển bất kỳ ứng dụng Java nào
Gọn nhẹ - phiên bản cơ bản của Spring framework chỉ khoảng 2MB
Cho phép các lập trình viên phát triển các lớp ứng dụng doanh nghiệp sử dụng POJOs(Plain Old Java Object)
Được tổ chức theo kiểu mô-đun
Không phát triển lại toàn bộ
Kiểm thử khá đơn giản
Framework web của Spring là một thiết kế tốt cho framework web MVC
Cung cấp một API thuận tiện để chuyển đổi các ngoại lệ đã có
Các thành phần chứa IoC (Inversion of Control ) có xu hướng nhẹ, đặc biệt khi so sánh với các thành phần
chứa EJB
Test cung cấp các lớp hỗ trợ cho kiểm thử unit test
Core Container:
AOP, Aspects and Instrumentation: Các module này sẽ giữ nhiệm vụ hỗ trợ cho các cài đặt lập trình thiên hướng khía cạnh và khả năng hỗ trợ tích hợp với AspectJ.
Data Access / Integration: Đây là nhóm bao gồm JDBC, ORM, OXM, JMS và module Transaction.
Web: cung cấp: Web, Web-Servlet… Nó sẽ hỗ trợ cho việc tạo ra các ứng dụng web
Framework Spring Web MVC cung cấp kiến trúc Model-View-Controller (MVC) và các thành phần có sẵn được sử dụng để phát triển các ứng dụng web theo công nghệ của Spring Framework.
Model
Model đóng gói dữ liệu ứng dụng và nói chung chúng sẽ bao gồm POJO.
View
View chịu trách nhiệm hiển thị dữ liệu mô hình và nói chung nó tạo ra đầu ra HTML mà trình duyệt của khách
hàng có thể hiểu.
Controller
Controller chịu trách nhiệm xử lý các yêu cầu của người dùng và xây dựng một mô hình thích hợp và chuyển
nó tới view để hiển thị
Framework Spring web model-view-controller (MVC) được thiết kế xung quanh một DispatcherServlet xử lý tất cả các yêu cầu và phản hồi HTTP.
DispatcherServlet sau khi nhận các request từ client sẽ điều hướng sang controller để xử lý.Controller là các class với annotation @Controller và phương thức xử lý với annotation @RequestMapping
HttpServletRequest
Sử dụng đối tượng response bằng cách truyền đối tượng HttpResponse vào hàm trong controller dưới dạng tham số
Session để mang dữ liệu tới tất cả các thành phần của ứng dụng web. Trong spring web mvc để sử dụng session, chúng ta sẽ truyền đối tượng HttpSession vào hàm trong controller dưới dạng tham số
Tham số từ form hoặc từ RewriteURL được lấy về trên controller bằng cách truyền tham số theo @RequestParam:
Tham số truyền đi sau url và sau dấu "/" gọi là Path variable. Giá trị này được lấy về ở controller như sau:
Truyền dữ liệu là đối tượng đến controller theo tham số @ModelAttribute:
Bước 1: Mở Eclipse Chọn File->New -> Dynamic Web Project
Chọn Next
click vào generate web.xml
Bước 2: Convert to Maven Project
Click chuột phải vào dự án -> Chọn configure -> chọn Convert to Maven Project
Bước 3: Cấu hình file pom.xml
Thêm gói spring web MVC >> 6.0.4
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springMVCdemo</groupId>
<artifactId>springMVCdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>17</release>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
</plugin>
</plugins>
</build>
</project>
Bước 4: cấu hình web.xml trong thư mục src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="5.0">
<display-name>springMVCdemo</display-name>
<servlet>
<servlet-name>springMVCdemo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/spring-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVCdemo</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Bước 5: Tạo Thư mục config trong src/main/webapp/WEB-INF
Tạo file spring-config.xml trong thư mục config
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="com.springMVCdemo.controllers" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
Bước 6: Tạo thư mục views trong src/main/webapp/WEB-INF
Tạo file index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Xin chào </h1>
</body>
</html>
Bước 7: tạo package com.springMVCdemo.controllers trong thư mục src/main/java
Tạo Class HomeController:
package com.springMVCdemo.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HomeController {
@RequestMapping(value = {"/"})
public String hello() {
return "index";
}
}
Kích chuột phải vào dự án và chạy server tomcat nhé
Spring MVC Custom Validation- Hướng dẫn validate file multipart file, custome anotation validate, validate file không rỗng , validate định dạng file.....
Read MoreSử dụng i18n Internationalization(Quốc tế hóa) làm đa ngôn ngữ trong ứng dụng web với Spring MVC
Read MoreTải giao diện Admin LTE 2 bản rút gọn nhẹ làm trang quản trị cho ứng dụng web ...............
Read MoreHướng dẫn CRUD Spring WebMVC vs Hibernate phần 2 (Quản lý sản phẩm), CRUD có upload image và có quan hệ khóa ngoại
Read MoreHướng dẫn Thêm sửa xóa dữ liệu với spring webmvc sử dụng hibernate , trong bài viết này mình sử dụng database oracle
Read MoreHướng dẫn upload file trong spring webmvc sử dụng common-io, common-fileupload ...
Read MoreHướng dẫn validate form trong springMVC sử dụng javax-validate
Read More