24 lines
719 B
Markdown
24 lines
719 B
Markdown
# Architecture
|
|
|
|
`flash-ext-view-thymeleaf` has two layers:
|
|
|
|
1. **Boot-time**
|
|
- `ThymeleafExtension` installs runtime + annotation processor.
|
|
- `ThymeleafTargetResolver` validates handlers and resolves `@Template` / `@Fragment`.
|
|
- Resolved targets are cached per handler class.
|
|
|
|
2. **Request-time**
|
|
- Handler builds local `ViewModel`.
|
|
- Runtime injects globals under reserved `global` namespace and merges local model.
|
|
- Thymeleaf renders template or fragment.
|
|
|
|
## Handler Contract
|
|
|
|
- Must extend `ThymeleafHandler`.
|
|
- Must have route annotation (`@Route`, `@GET`, `@POST`, ...).
|
|
- Must declare exactly one view annotation:
|
|
- `@Template`
|
|
- `@Fragment`
|
|
|
|
Invalid configurations fail fast at startup.
|