Cấu trúc thư mục dự án
Dự án Lavagna có cấu trúc thư mục như sau:
lavagna/
├── bin/
│ ├── start.sh
│ └── start.bat
├── conf/
│ ├── app.properties
│ └── logging.properties
├── lib/
│ └── (các thư viện phụ thuộc)
├── web/
│ ├── css/
│ ├── fonts/
│ ├── images/
│ ├── js/
│ └── templates/
├── scripts/
│ └── (các tập lệnh khác)
├── src/
│ ├── main/
│ │ ├── java/
│ │ └── resources/
│ └── test/
│ ├── java/
│ └── resources/
└── README.md
Giải thích cấu trúc:
- bin/: Chứa các tập lệnh để khởi động ứng dụng,
start.shvàstart.battương ứng cho hệ điều hành Unix và Windows. - conf/: Chứa các tệp cấu hình của dự án, ví dụ
app.propertiesvàlogging.properties. - lib/: Chứa các thư viện (JAR) mà dự án phụ thuộc vào.
- web/: Chứa các tài nguyên phía trình duyệt (front-end), bao gồm CSS, phông chữ, hình ảnh, JavaScript và tệp mẫu.
- scripts/: Chứa các tập lệnh hỗ trợ khác cho dự án.
- src/: Chứa mã nguồn của dự án, được chia thành hai phần
main(mã nguồn chính) vàtest(mã nguồn kiểm thử). - README.md: Tài liệu hướng dẫn chính của dự án.
Tệp khởi động dự án
Các tệp khởi động nằm trong thư mục bin/.
start.sh (Hệ điều hành Unix)
start.sh là một tập lệnh Shell dùng để khởi động Lavagna trên các hệ thống Unix. Nội dung của nó có thể như sau:
#!/bin/bash
# Định nghĩa đường dẫn đến thư mục cài đặt Java
JAVA_HOME_DIR=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME_DIR/bin:$PATH
# Khởi động ứng dụng Lavagna
java -jar ../lib/lavagna-app.jar
start.bat (Hệ điều hành Windows)
start.bat là một tập lệnh Batch dùng để khởi động Lavagna trên Windows. Nội dung của nó có thể như sau:
@echo off
REM Định nghĩa đường dẫn đến thư mục cài đặt Java
set JAVA_HOME_DIR=C:\Program Files\Java\jdk-11
set PATH=%JAVA_HOME_DIR%\bin;%PATH%
REM Khởi động ứng dụng Lavagna
java -jar ..\lib\lavagna-app.jar
Tệp cấu hình dự án
Các tệp cấu hình chính nằm trong thư mục conf/.
app.properties
Đây là tệp cấu hình chính, chứa các cài đặt như kết nối cơ sở dữ liệu, cổng máy chủ, và cấp độ ghi log. Ví dụ:
# Cấu hình cơ sở dữ liệu
spring.datasource.url=jdbc:h2:mem:lavagna
spring.datasource.username=sa
spring.datasource.password=
# Cổng máy chủ
server.port=8081
# Cấu hình ghi log
logging.level.root=DEBUG
logging.properties
Tệp này dùng để định nghĩa cách ghi log, bao gồm định dạng, cấp độ và nơi xuất ra. Ví dụ:
log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./logs/lavagna.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1} - %m%n