Hướng dẫn tích hợp SSM (Spring, SpringMVC, MyBatis) chi tiết

Kiến trúc ứng dụng web backend thường được chia thành 3 lớp chính:

  • Lớp hiển thị (Presentation Layer): Sử dụng SpringMVC để xử lý các yêu cầu từ trình duyệt.
  • Lớp nghiệp vụ (Business Layer): Sử dụng Spring Framework để quản lý logic và các bean.
  • Lớp dữ liệu (Persistence Layer): Sử dụng MyBatis để thao tác với cơ sở dữ liệu.

1. Chuẩn bị cơ sở dữ liệu

Sử dụng SQL script sau để khởi tạo bảng dữ liệu:

CREATE DATABASE ssm_db;
USE ssm_db;
CREATE TABLE account (
    id INT PRIMARY KEY AUTO_INCREMENT,
    acc_name VARCHAR(50),
    balance DOUBLE
);
    

2. Cấu hình Maven (pom.xml)

Cần khai báo các thư viện cần thiết trong file pom.xml, bao gồm Spring Context, Spring WebMVC, MyBatis, MyBatis-Spring, và MySQL Connector.

3. Xây dựng cấu trúc dự án

Tổ chức dự án theo các gói (package) chuẩn:

  • com.project.controller: Các bộ điều khiển.
  • com.project.service: Các interface nghiệp vụ và lớp triển khai.
  • com.project.dao: Các interface truy cập dữ liệu (Mapper).
  • com.project.domain: Các đối tượng thực thể (POJO).

4. Cấu hình Spring (ApplicationContext.xml)

Tích hợp DataSource và quét các thành phần trong dự án:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/ssm_db"/>
    <property name="username" value="root"/>
    <property name="password" value="your_password"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.project.dao"/>
</bean>
    

5. Cấu hình SpringMVC (spring-mvc.xml)

Khai báo DispatcherServlet và View Resolver để điều hướng các trang JSP:

<context:component-scan base-package="com.project.controller" />
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>
    

6. Triển khai Logic

Tại lớp DAO, sử dụng annotation của MyBatis để định nghĩa SQL:

@Repository
public interface AccountMapper {
    @Select("SELECT * FROM account")
    List<Account> selectAll();

    @Insert("INSERT INTO account(acc_name, balance) VALUES(#{accName}, #{balance})")
    void insertAccount(Account account);
}
    

Tiếp theo, inject AccountMapper vào lớp AccountService bằng @Autowired để thực hiện các thao tác logic nghiệp vụ trước khi gọi đến Controller.

Thẻ: SpringMVC mybatis Spring Java Backend

Đăng vào ngày 18 tháng 5 lúc 03:33