Tổng quan về Spring Framework và Spring MVC

2023-06-08 14:57:17

Tổng Quan về Spring Framework

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

Lợi ích của việc sử dụng Spring Framework:

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

Kiến Trúc Của Spring Framework:

Test cung cấp các lớp hỗ trợ cho kiểm thử unit test

Core Container: 

  • Spring core, bean: Có khả năng cung cấp các tính năng như: IOC và Dependency Injection. 
  • Spring Context: Hỗ trợ các dạng đa ngôn ngữ và các tính năng Java EE cho người dùng như: EJB, JMX.
  • Expression Language: Có khả năng mở rộng từ  Expresion Language bên trong JSP. Từ đó, cung cấp các hỗ trợ cho quá trình setting hoặc getting các giá trị. Hầu hết các method đều sẽ thực hiện cải tiến cho phép truy cập vào collections, index, các toán tử logic…

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

Spring Web MVC:

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ị

DispatcherServlet

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.
 

Spring Controller

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 request bằng cách truyền đối tượng request vào hàm trong controller dưới dạng tham số


HttpServletResponse

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ố

HttpSession

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ố

@RequestParam, @PathParam

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:

@ModelAttribute

Truyền dữ liệu là đối tượng đến controller theo tham số @ModelAttribute:

Phần 2: Tạo dự án spring MVC:

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é 

Bài viết liên quan

Ngày đăng : 2023-08-31 08:48:49
Spring MVC Custom Validation(Hướng dẫn validate file)

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 More
Ngày đăng : 2023-07-26 17:12:59
Hướng dẫn sử dụng i18n Internationalization(Quốc tế hóa) làm đa ngôn ngữ trong Spring MVC

Sử 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 More
Ngày đăng : 2023-07-20 17:17:45
Tải giao diện Admin LTE

Tả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 More
Ngày đăng : 2023-06-22 11:15:11
Hướng dẫn CRUD Spring WebMVC vs Hibernate phần 2 (Quản lý sản phẩm)

Hướ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 More
Ngày đăng : 2023-06-20 10:30:47
Hướng dẫn CRUD (Thêm sửa xóa) Spring WebMVC vs Hibernate

Hướ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 More
Ngày đăng : 2023-06-13 18:25:02
Hướng dẫn upload file trong spring webmvc

Hướng dẫn upload file trong spring webmvc sử dụng common-io, common-fileupload ...

Read More
Ngày đăng : 2023-06-13 18:15:39
Hướng dẫn validate form trong Spring WebMVC

Hướng dẫn validate form trong springMVC sử dụng javax-validate

Read More