Initial commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Directory Structure
|
||||
|
||||
> Backend directory organization for the JSP + Servlet + MySQL application.
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Future backend code should follow the established B/S layered architecture.
|
||||
There is no application source tree yet; the paths and package names below are
|
||||
illustrative conventions to use when creating the first application code.
|
||||
|
||||
---
|
||||
|
||||
## Suggested Layout
|
||||
|
||||
```text
|
||||
src/main/java/com/mzh/library/
|
||||
controller/ Servlet controllers such as BookServlet
|
||||
service/ Service interfaces such as BookService
|
||||
service/impl/ Business implementations such as BookServiceImpl
|
||||
dao/ DAO interfaces such as BookDao
|
||||
dao/impl/ MySQL DAO implementations such as BookDaoImpl
|
||||
entity/ JavaBeans/entities such as Book, Reader, BorrowRecord
|
||||
filter/ Authentication, authorization, encoding filters
|
||||
util/ Shared utilities such as JdbcUtil or DateUtil
|
||||
src/main/resources/
|
||||
db.properties MySQL connection configuration when introduced
|
||||
src/main/webapp/
|
||||
WEB-INF/web.xml Servlet/filter mappings when annotations are not used
|
||||
```
|
||||
|
||||
Use the package root consistently once the first code is created. If a
|
||||
different root package is chosen in IDEA, update this spec in the same change.
|
||||
|
||||
---
|
||||
|
||||
## Layer Responsibilities
|
||||
|
||||
- `controller`: Servlet classes dispatch requests, validate parameters, call
|
||||
services, choose JSP forwards or redirects, and return results.
|
||||
- `service`: Business workflows including book warehousing/intake, borrowing,
|
||||
returning, renewals, inventory status updates, overdue statistics, and
|
||||
permission checks.
|
||||
- `dao`: CRUD and query access to MySQL. DAOs should not perform presentation
|
||||
rendering or multi-step business workflows.
|
||||
- `entity`: Plain data objects representing books, categories, readers,
|
||||
borrowing records, administrators, roles/permissions, and system logs.
|
||||
- `filter`: Cross-cutting web concerns such as login checks, role guards, and
|
||||
request encoding.
|
||||
- `util`: Small shared helpers only after searching for existing helpers first.
|
||||
|
||||
---
|
||||
|
||||
## Naming Conventions
|
||||
|
||||
- Servlet controllers use names such as `BookServlet`, `ReaderServlet`,
|
||||
`BorrowServlet`, and `LoginServlet`.
|
||||
- Service interfaces and implementations use names such as `BookService` and
|
||||
`BookServiceImpl`.
|
||||
- DAO interfaces and implementations use names such as `BookDao` and
|
||||
`BookDaoImpl`.
|
||||
- Entity names should be singular Java nouns such as `Book`, `BookCategory`,
|
||||
`Reader`, `BorrowRecord`, `Administrator`, `RolePermission`, and
|
||||
`SystemLog`.
|
||||
|
||||
---
|
||||
|
||||
## Boundaries
|
||||
|
||||
Do not put SQL in JSPs or Servlets. Do not put HTML generation in DAOs or
|
||||
services. Keep permission checks in filters/services and keep request parameter
|
||||
parsing in controllers.
|
||||
Reference in New Issue
Block a user