# wangzaiplus/springboot architecture

> Architecture diagram of the GitHub repository wangzaiplus/springboot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wangzaiplus/springboot
- Repository: https://github.com/wangzaiplus/springboot

## Overview

This is a Spring-based Java application with a bundled Vue/Axios browser client. The tree suggests user/login/token, fund lookup, and asynchronous mail/login-log capabilities, alongside Redis-based controls. The principal likely workflow is a browser request handled by a controller, serviced by domain logic, and optionally persisted or dispatched. No README or Java excerpts were provided, so backend relationships are shown as unverified dashed links; the Vue rendering and Axios request flow are supported by excerpts.

Main entry points: [`src/main/java/com/wangzaiplus/test/controller`](https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/controller) (REST controllers), [`src/main/java/com/wangzaiplus/test/mapper`](https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/mapper) (Data mappers), [`src/main/resources/static/js/axios.js`](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/static/js/axios.js) (Axios client), [`src/main/resources/templates/index.html`](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/templates/index.html) (Page templates)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_browser["Browser client"]
  node_vue["Vue runtime<br/>[vue.js]"]
  node_axios["Axios client<br/>[axios.js]"]
  node_views["Page templates<br/>[index.html]"]
end

subgraph group_api["Web API"]
  node_controllers["REST controllers"]
end

subgraph group_domain["Domain services"]
  node_login["Login service"]
  node_users["User service"]
  node_tokens["Token service"]
  node_funds["Fund service"]
  node_login_logs["Login log service"]
end

subgraph group_messaging["Async messaging"]
  node_mq["Message broker"]
  node_message_helper["Message helper<br/>[MessageHelper.java]"]
  node_consumers["Message consumers"]
  node_listeners["Message listeners"]
  node_mail["Mail delivery<br/>[MailUtil.java]"]
  node_resend["Message resend task<br/>[ResendMsg.java]"]
end

subgraph group_platform["State and integrations"]
  node_mappers["Data mappers"]
  node_database[("Application database")]
  node_redis[("Redis")]
  node_interceptors["Request controls"]
end

node_visitor(("Browser user"))
node_fund_provider["Fund data provider"]

node_visitor -.->|"opens page"| node_views
node_views -.->|"renders with"| node_vue
node_views -.->|"requests through"| node_axios
node_vue -->|"updates DOM"| node_visitor
node_axios -.->|"sends requests"| node_controllers
node_controllers -.->|"delegates login"| node_login
node_controllers -.->|"delegates user work"| node_users
node_controllers -.->|"uses tokens"| node_tokens
node_controllers -.->|"requests fund data"| node_funds
node_funds -.->|"fetches data"| node_fund_provider
node_login -.->|"uses persistence"| node_mappers
node_users -.->|"uses persistence"| node_mappers
node_funds -.->|"uses persistence"| node_mappers
node_mappers -.->|"reads and writes"| node_database
node_interceptors -.->|"checks limits"| node_redis
node_controllers -.->|"publishes messages"| node_message_helper
node_message_helper -.->|"sends messages"| node_mq
node_mq -.->|"dispatches events"| node_listeners
node_listeners -.->|"invokes consumers"| node_consumers
node_consumers -.->|"delivers mail"| node_mail
node_consumers -.->|"records log"| node_login_logs
node_resend -.->|"loads pending messages"| node_mappers
node_axios -->|"dispatches adapter"| node_axios

click node_vue "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/static/js/vue.js"
click node_axios "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/static/js/axios.js"
click node_views "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/templates/index.html"
click node_controllers "https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/controller"
click node_login "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/LoginServiceImpl.java"
click node_users "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/UserServiceImpl.java"
click node_tokens "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/TokenServiceImpl.java"
click node_funds "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/FundServiceImpl.java"
click node_mappers "https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/mapper"
click node_interceptors "https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/interceptor"
click node_message_helper "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/mq/MessageHelper.java"
click node_consumers "https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/mq/consumer"
click node_listeners "https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/mq/listener"
click node_mail "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/util/MailUtil.java"
click node_login_logs "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/LoginLogServiceImpl.java"
click node_resend "https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/task/ResendMsg.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_vue,node_axios,node_views,node_visitor toneBlue
class node_controllers toneAmber
class node_login,node_users,node_tokens,node_funds,node_login_logs toneMint
class node_mq,node_message_helper,node_consumers,node_listeners,node_mail,node_resend toneRose
class node_mappers,node_database,node_redis,node_interceptors,node_fund_provider toneIndigo
```

## Components

### Browser client

- [Vue runtime](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/static/js/vue.js): `src/main/resources/static/js/vue.js`
- [Axios client](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/static/js/axios.js): `src/main/resources/static/js/axios.js`
- [Page templates](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/resources/templates/index.html): `src/main/resources/templates/index.html`

### Web API

- [REST controllers](https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/controller): `src/main/java/com/wangzaiplus/test/controller`

### Domain services

- [Login service](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/LoginServiceImpl.java): `src/main/java/com/wangzaiplus/test/service/LoginServiceImpl.java`
- [User service](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/UserServiceImpl.java): `src/main/java/com/wangzaiplus/test/service/impl/UserServiceImpl.java`
- [Token service](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/TokenServiceImpl.java): `src/main/java/com/wangzaiplus/test/service/impl/TokenServiceImpl.java`
- [Fund service](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/FundServiceImpl.java): `src/main/java/com/wangzaiplus/test/service/impl/FundServiceImpl.java`
- [Login log service](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/service/impl/LoginLogServiceImpl.java): `src/main/java/com/wangzaiplus/test/service/impl/LoginLogServiceImpl.java`

### Async messaging

- **Message broker**
- [Message helper](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/mq/MessageHelper.java): `src/main/java/com/wangzaiplus/test/mq/MessageHelper.java`
- [Message consumers](https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/mq/consumer): `src/main/java/com/wangzaiplus/test/mq/consumer`
- [Message listeners](https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/mq/listener): `src/main/java/com/wangzaiplus/test/mq/listener`
- [Mail delivery](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/util/MailUtil.java): `src/main/java/com/wangzaiplus/test/util/MailUtil.java`
- [Message resend task](https://github.com/wangzaiplus/springboot/blob/wxw/src/main/java/com/wangzaiplus/test/task/ResendMsg.java): `src/main/java/com/wangzaiplus/test/task/ResendMsg.java`

### State and integrations

- [Data mappers](https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/mapper): `src/main/java/com/wangzaiplus/test/mapper`
- **Application database**
- **Redis**
- [Request controls](https://github.com/wangzaiplus/springboot/tree/wxw/src/main/java/com/wangzaiplus/test/interceptor): `src/main/java/com/wangzaiplus/test/interceptor`

### Other components

- **Browser user**
- **Fund data provider**

## Connections

- Browser user → Page templates: opens page
- Page templates → Vue runtime: renders with
- Page templates → Axios client: requests through
- Vue runtime → Browser user: updates DOM (evidence: `src/main/resources/static/js/vue.js`)
- Axios client → REST controllers: sends requests
- REST controllers → Login service: delegates login
- REST controllers → User service: delegates user work
- REST controllers → Token service: uses tokens
- REST controllers → Fund service: requests fund data
- Fund service → Fund data provider: fetches data
- Login service → Data mappers: uses persistence
- User service → Data mappers: uses persistence
- Fund service → Data mappers: uses persistence
- Data mappers → Application database: reads and writes
- Request controls → Redis: checks limits
- REST controllers → Message helper: publishes messages
- Message helper → Message broker: sends messages
- Message broker → Message listeners: dispatches events
- Message listeners → Message consumers: invokes consumers
- Message consumers → Mail delivery: delivers mail
- Message consumers → Login log service: records log
- Message resend task → Data mappers: loads pending messages
- Axios client → Axios client: dispatches adapter (evidence: `src/main/resources/static/js/axios.js`)
