Sau khi đã cài đặt xong môi trường phát triển, trong bài học này bạn sẽ:
- Nắm được cách khởi tạo một project Spring Boot chuẩn
- Cấu hình kết nối Oracle Database
- Tạo cấu trúc dự án ứng dụng web bán hàng
- Tích hợp Thymeleaf cho giao diện web
🧰 1. Tạo project Spring Boot mới trong Eclipse
Bước 1: Mở Eclipse → File > New > Spring Starter Project
- Project Name:
banhang-online
- Type: Maven
- Packaging: Jar
- Java Version: 17 hoặc phù hợp với JDK bạn đã cài
Group: com.lungcode
.springshop
Artifact: springshop
springshop
Name: springshop
Description: Ứng dụng bán hàng online với Spring Boot
Package: com.lungcode.springshop
📌 Ảnh minh họa gợi ý: Chụp màn hình bước cấu hình project Spring Starter.
Bước 2: Chọn các dependency:
- Spring Web:
- Cung cấp các công cụ để tạo Controller, xử lý request/response
- Tích hợp sẵn Tomcat làm web server nội bộ
- Dễ dàng tạo các API hoặc giao diện web HTML với Thymeleaf
- 📦 Bao gồm:
- Spring MVC
- Tomcat embedded
- Jackson (để convert JSON)
- Thymeleaf:
- Template engine để hiển thị HTML động
- Tích hợp chặt với Spring MVC
- Cho phép truyền dữ liệu từ Controller ra view
- Hỗ trợ các tính năng như điều kiện (
th:if
), vòng lặp (th:each
)
- Spring Data JPA:
- Giúp làm việc với DB bằng interface (
JpaRepository
) - Hạn chế viết SQL thủ công
- Tự động ánh xạ entity với bảng
- Hỗ trợ custom query theo tên hàm
- Giúp làm việc với DB bằng interface (
- Oracle Driver (Không có sẵn trong Maven Cntrer, phải tải file hoặc lên mạng ìm dependency về cấu hình)
- Oracle Driver chính là cầu nối giữa ứng dụng Java Spring Boot và cơ sở dữ liệu Oracle.
- Oracle cung cấp sẵn ojdbc8.jar hoặc ojdbc11.jar dùng để:
- Gửi câu lệnh SQL từ Java tới Oracle DB.
- Nhận kết quả truy vấn và trả về Java để xử lý.
- Spring Boot DevTools:
- Tự động reload khi sửa code
- Hữu ích trong quá trình phát triển
- Không nên dùng trong môi trường production
- Validation:
- Hỗ trợ kiểm tra dữ liệu người dùng nhập
- Sử dụng annotation:
@NotNull
,@NotBlank
@Email
,@Size
,@Min
,@Max
Nhấn Finish để hoàn tất.
🗂 2. Cấu trúc thư mục mặc định của Spring Boot
Khi tạo xong, bạn sẽ thấy cấu trúc thư mục như sau:
src/
└── main/
├── java/
│ └── com.lungcode.springshop/
│ ├── config/
│ ├── controller/
│ ├── entity/
│ ├── repository/
│ ├── service/
│ └── Application.java
└── resources/
├── static/
├── templates/
└── application.properties
💡 Giải thích chi tiết
🔸 src/main/java/
Nơi chứa toàn bộ code Java chính của ứng dụng.
📌 com.lungcode.springshop
Package gốc, nên đặt theo tên miền ngược của bạn + tên project.
config/
:
Chứa các class cấu hình Spring như: Cấu hình bảo mật, cấu hình template, cấu hình CORS, Bean, DataSource…controller/
:
Nơi chứa các class điều khiển luồng dữ liệu (@Controller
,@RestController
).
Nhiệm vụ: Tiếp nhận request từ người dùng, gọi Service xử lý và trả về dữ liệu hoặc giao diện.entity/
:
Chứa các class đại diện cho bảng trong cơ sở dữ liệu (còn gọi là Model hoặc POJO).
Dùng@Entity
để ánh xạ bảng trong Oracle DB.repository/
:
Chứa interface dùng để truy vấn dữ liệu từ DB.
Thườngextends JpaRepository
hoặcCrudRepository
.service/
:
Nơi xử lý nghiệp vụ, logic chính.
Thường có annotation@Service
và đứng giữa Controller và Repository.Application.java
:
File khởi động ứng dụng, có@SpringBootApplication
và chứa hàmmain()
.
Khi chạy sẽ bật toàn bộ Spring Boot Framework.
🔸 src/main/resources/
Nơi chứa tài nguyên cấu hình và giao diện web.
static/
:
Chứa file tĩnh như:- ảnh (
.jpg, .png
) - CSS, JavaScript.
Khi chạy, web sẽ truy cập qua URL trực tiếp (/static/css/style.css
→/css/style.css
).
- ảnh (
templates/
:
Chứa các file giao diện HTML sử dụng Thymeleaf.
Spring sẽ tìm file HTML trong đây để trả về cho client.application.properties
:
File cấu hình chính của Spring Boot:
Kết nối Database, cấu hình port, Thymeleaf, logging, email server, v.v.
✅ Kết luận:
Mỗi thư mục có một nhiệm vụ rõ ràng, tuân theo nguyên tắc:
Controller -> Service -> Repository -> Database
và tách biệt code giao diện, code logic, cấu hình ra riêng biệt.
🔧 3. Kiểm tra file pom.xml
File pom.xml
sẽ chứa các dependency bạn đã chọn. Kiểm tra nội dung có dạng:
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lungcode</groupId> <artifactId>springshop</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>SpringShop</name> <description>Dự án web bán hàng sử dụng Spring Boot, Oracle DB và Thymeleaf</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.5</version> <!-- Hoặc version phù hợp với Java bạn dùng --> <relativePath/> </parent> <properties> <java.version>17</java.version> </properties> <dependencies> <!-- Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- Oracle JDBC Driver --> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.3.0.0</version> </dependency> <!-- Thymeleaf Template Engine --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- DevTools (Reload nóng) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <!-- Testing --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!-- Plugin để biên dịch Java --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
📌 Nếu thiếu, bạn có thể thêm thủ công các dependency cần thiết.
3️⃣4. Cấu hình kết nối Oracle DB
Tại file application.properties
:
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect
👉 Lưu ý: thay your_username
và your_password
bằng tài khoản Oracle thực tế.
🚀 5. Viết Controller đầu tiên để kiểm tra ứng dụng
Tạo một class mới tên là HomeController.java
trong package controller
.
package com.yourcompany.banhang.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping(&quot;/&quot;) public String home() { return &quot;index&quot;; // sẽ trả về file index.html trong thư mục templates } }
🧾 6. Tạo file index.html
để hiển thị giao diện
Tạo file index.html
trong thư mục src/main/resources/templates
.
&lt;!DOCTYPE html&gt; &lt;html xmlns:th=&quot;http://www.thymeleaf.org&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;Trang chủ&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Chào mừng đến với ứng dụng bán hàng online!&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;
⚙ 7. Chạy thử ứng dụng
Nhấn chuột phải vào file BanhangOnlineApplication.java
→ Run As > Spring Boot App
(Hoặc có thể click chuôt phải vào thư mưc ứng dụng -> Run As > Spring Boot App
)
Mở trình duyệt và truy cập:
http://localhost:8080/
Bạn sẽ thấy dòng chữ “Chào mừng đến với ứng dụng bán hàng online!”
📌 Kết luận
Bạn đã hoàn thành bài học 3 với các nội dung:
- Tạo project Spring Boot bằng Eclipse
- Thêm dependency phù hợp
- Cấu hình kết nối Oracle DB
- Tạo controller và view cơ bản
- Chạy ứng dụng đầu tiên