ืืขืจืืช ื ืืืื ืืืฆืจืื ืืืฉืชืืฉืื ืืชืงืืืช ืืื ืืื ืขื ืืจืืืืงืืืจื ืฉื microservices ืขื Spring Boot. ืืืขืจืืช ืืืืืช ืืืฉืง ืืืืื ืื ืืืื ืืืฆืจืื, ืจืืฉืื ืืืชืืืจืืช ืืฉืชืืฉืื, ืื ืืืื ืืกื ื ืชืื ืื ืืชืงืื.
โโโ ๐ Security Service (Port 8081)
โ โโโ JWT Authentication
โ โโโ Spring Security
โ โโโ WebFlux Gateway
โ
โโโ ๐ JPA Service (Port 8082)
โ โโโ Product Management
โ โโโ User Management
โ โโโ PostgreSQL Integration
โ โโโ Aspect-Oriented Programming
โ
โโโ ๐๏ธ PostgreSQL Database (Port 5432)
โโโ Products Table
โโโ Users Table
- Java 21 - ืฉืคืช ืืชืื ืืช ืืจืืฉืืช
- Spring Boot 3.2.5 - ืืกืืจืช ืืคืืชืื ืืจืืฉืืช
- Spring Data JPA - ื ืืืื ืืกื ื ืชืื ืื
- Spring Security - ืืืืื ืืืจืฉืืืช
- Spring WebFlux - ืชืื ืืช ืจืืืงืืืื
- Spring AOP - ืชืื ืืช ืืืืืื ืืืืืื
- PostgreSQL 15 - ืืกื ื ืชืื ืื ืืืกื
- Docker & Docker Compose - ืงืื ืืืื ืจืืืฆืื
- Maven - ื ืืืื dependencies
- JWT (JSON Web Tokens) - ืืืืืช ืืืจืฉืื
- JJWT Library 0.11.5 - ืืฆืืจืช ืืืืืืช JWT
- Lombok - ืืคืืชืช boilerplate code
- Aspect-Oriented Programming - logging ืื ืืืืจ
ืืืฉืง ืจืืฉื ืขื ืืคืฉืจืืืืช ืืืกืคืช ืืืฆืจืื ืืจืืฉืื ืืฉืชืืฉืื
ืืืคืก ืจืืฉืื ืืฉืชืืฉ ืืืฉ ืืืขืจืืช
ืืกื ืืชืืืจืืช ืขื ืืืืืช ืืฉืชืืฉ
ืืืฉืง ืืืืื ืืชืงืื ืื ืืืื ืืืฆืจืื ืขื ืืคืฉืจืืืืช ืืืืงื
- Docker Desktop
- Java 21 (ืืืคืฆืืื ืื ืืคืืชืื)
- Git
# ืฉืืคืื ืืคืจืืืงื
git clone <repository-url>
cd FinalProject
# ืืคืขืืช ืืืขืจืืช ืขื Docker
docker-compose up --build
# ืื ืืคืื ืจืงืข
docker-compose up -d --build# ืืืืงืช ืงืื ืืืื ืจืื ืคืขืืืื
docker ps
# ืฆืคืืื ืืืืืื
docker-compose logs -f| Method | Endpoint | Description |
|---|---|---|
GET |
/products |
ืงืืืช ืื ืืืืฆืจืื |
POST |
/products/add |
ืืืกืคืช ืืืฆืจ ืืืฉ |
DELETE |
/products/{id} |
ืืืืงืช ืืืฆืจ ืืคื ID |
DELETE |
/products/all |
ืืืืงืช ืื ืืืืฆืจืื |
| Method | Endpoint | Description |
|---|---|---|
GET |
/users |
ืงืืืช ืื ืืืฉืชืืฉืื |
GET |
/users/{id} |
ืงืืืช ืืฉืชืืฉ ืืคื ID |
POST |
/users/add |
ืืืกืคืช ืืฉืชืืฉ ืืืฉ |
curl -X POST http://localhost:8082/products/add \
-H "Content-Type: application/json" \
-d '{"name": "laptop", "price": 3500.00}'curl -X DELETE http://localhost:8082/products/1curl -X POST http://localhost:8082/users/add \
-H "Content-Type: application/json" \
-d '{"name": "John Doe", "address": "123 Main St", "phoneNumber": "0501234567"}'FinalProject/
โโโ ๐ demo/ (JPA Service)
โ โโโ ๐ src/main/java/com/example/demo/
โ โ โโโ ๐ Aspects/
โ โ โ โโโ LoggingAspect.java
โ โ โโโ ๐ Controllers/
โ โ โ โโโ ProductController.java
โ โ โ โโโ UserController.java
โ โ โโโ ๐ Entities/
โ โ โ โโโ Product.java
โ โ โ โโโ User.java
โ โ โ โโโ Carditional.java
โ โ โโโ ๐ Repositories/
โ โ โ โโโ ProductRepository.java
โ โ โ โโโ UserRepository.java
โ โ โโโ ๐ Services/
โ โ โโโ ProductService.java
โ โโโ ๐ src/main/resources/
โ โ โโโ ๐ static/
โ โ โ โโโ index.html
โ โ โโโ application.properties
โ โโโ Dockerfile
โ
โโโ ๐ Security/ (Security Service)
โ โโโ ๐ src/main/java/com/example/demo/
โ โ โโโ DemoApplication.java
โ โโโ ๐ src/main/resources/
โ โ โโโ application.properties
โ โโโ Dockerfile
โ
โโโ ๐ images/
โ โโโ admin.png
โ โโโ login.png
โ โโโ register.png
โ โโโ user.png
โ
โโโ docker-compose.yaml
โโโ README.md
# PostgreSQL
POSTGRES_USER: postgres
POSTGRES_PASSWORD: secret
POSTGRES_DB: app_db
# Spring Boot
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres-db:5432/app_db
SPRING_JPA_HIBERNATE_DDL_AUTO: update- Frontend & JPA Service:
http://localhost:8082 - Security Service:
http://localhost:8081 - PostgreSQL Database:
localhost:5432
- ืืฆืืช ืื ืืืืฆืจืื
- ืืืกืคืช ืืืฆืจ ืืืฉ
- ืืืืงืช ืืืฆืจ ืกืคืฆืืคื
- ืืืืงืช ืื ืืืืฆืจืื
- ืืืฉืง ืืืืื ืืื ืืืืืืืื
- ืจืืฉืื ืืฉืชืืฉืื ืืืฉืื
- ืืชืืืจืืช ืืืขืจืืช
- ืืืกืื ืืืื ืืืกื ื ืชืื ืื
- ืฉืืจืืช ืืืืื ื ืคืจื
- JWT Token support
- Spring Security integration
- ืขืืฆืื ืจืกืคืื ืกืืื
- ืชืืืื ืืขืืจืืช (RTL)
- ืืืฉืง ืืืืื ืืชืงืื
- ืืืืขืืช ืืฉืชืืฉ ืืจืืจืืช
# ืืคืขืืช ืืกื ืื ืชืื ืื ืืืื
docker-compose up postgres-db
# ืืคืขืืช ืืฉืืจืืชืื ื-IDE
# JPA Service: port 8082
# Security Service: port 8081# ืืืืงืช JPA Service
curl http://localhost:8082/products
# ืืืืงืช ืงืืฉืืจืืืช ืืืกื ืื ืชืื ืื
docker-compose exec postgres-db psql -U postgres -d app_db -c "SELECT 1;"ืืืขืจืืช ืืืืืช Aspect-Oriented Programming ืื ืืืืจ:
- ืืืืื ืืืืืืืืื ืืื ืงืจืืืืช API
- ืืขืงื ืืืจ ืืืฆืืขืื
- ืืืืื ืขื ืฉืืืืืช
- ืืขืงื ืืืจ ืืื ื ืชืืืื
- ื ืืืืจ ืฉืืืืฉ ืืืฉืืืื
- ืืืืื ืฉื ืืกื ืื ืชืื ืื
- Fork ืืช ืืคืจืืืงื
- ืฆืืจ branch ืืืฉ (
git checkout -b feature/amazing-feature) - Commit ืืฉืื ืืืื (
git commit -m 'Add amazing feature') - Push ื-branch (
git push origin feature/amazing-feature) - ืคืชื Pull Request
ืืคืจืืืงื ืืืคืฅ ืชืืช ืจืืฉืืื MIT. ืจืื ืงืืืฅ LICENSE ืืคืจืืื ื ืืกืคืื.
- ืฉื ืืืคืชื - ืคืืชืื ืืื ืฉื ืืืขืจืืช
- ๐ง Email: your.email@example.com
- ๐ LinkedIn: ืืคืจืืคืื ืฉืื
- ๐ฑ GitHub: @yourusername
๐ ืคืจืืืงื ืืืจ ืืงืืจืก Java Advanced - Spring Boot Microservices
Made with โค๏ธ using Spring Boot & Docker