# wuyouzhuguli/springall architecture

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

- Interactive diagram: https://gitdiagram.com/wuyouzhuguli/springall
- Repository: https://github.com/wuyouzhuguli/springall

## Overview

This repository is a collection of Spring tutorial applications, not one integrated runtime. Its principal workflow varies by example: a user request enters a web controller, then exercises a framework capability such as persistence, authentication, caching, or service invocation. The graph highlights the documented tutorial families and sampled implementations; these examples are largely independent. Dashed, uncited links indicate illustrative but unsampled workflow relationships, not verified calls.

Main entry points: [`03.Spring-Boot-MyBatis/src/main/java/com/springboot/bean/Student.java`](https://github.com/wuyouzhuguli/springall/blob/master/03.Spring-Boot-MyBatis/src/main/java/com/springboot/bean/Student.java) (Student Model), [`08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/controller/IndexController.java`](https://github.com/wuyouzhuguli/springall/blob/master/08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/controller/IndexController.java) (Thymeleaf Views), [`11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/controller/LoginController.java`](https://github.com/wuyouzhuguli/springall/blob/master/11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/controller/LoginController.java) (Shiro Login), [`35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/BrowserSecurityConfig.java`](https://github.com/wuyouzhuguli/springall/blob/master/35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/BrowserSecurityConfig.java) (Browser Security)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_boot["Spring Boot Examples"]
  node_bootconfig["Configuration<br/>[bean]"]
  node_properties["Blog Properties"]
  node_configbean["Config Beans<br/>[ConfigBean.java]"]
  node_student["Student Model<br/>[Student.java]"]
  node_mybatis["MyBatis Access<br/>[springboot]"]
  node_jdbc["JdbcTemplate Access<br/>[springboot]"]
  node_multids["Multiple Data Sources<br/>[springboot]"]
  node_logging["AOP Logging<br/>[springboot]"]
  node_thymeleaf["Thymeleaf Views"]
  node_account["Account Model<br/>[Account.java]"]
  node_cache["Redis / Ehcache"]
  node_exception["Exception Handling"]
  node_filter["Filters / Interceptors<br/>[mrbird]"]
  node_pagehelper["Mapper Pagination<br/>[BaseService.java]"]
  node_genericservice["Service Contract<br/>[IService.java]"]
end

subgraph group_shiro["Shiro Security"]
  node_shirologin["Shiro Login"]
  node_shirorealm["Shiro Realm<br/>[ShiroRealm.java]"]
  node_shiroconfig["Shiro Configuration<br/>[ShiroConfig.java]"]
  node_shirovariants["Shiro Extensions<br/>[springboot]"]
  node_useronline["Online Sessions<br/>[UserOnline.java]"]
  node_sessionservice["Session Service"]
end

subgraph group_security["Spring Security"]
  node_securityconfig["Browser Security"]
  node_userdetails["User Lookup"]
  node_myuser["User Model<br/>[MyUser.java]"]
  node_verification["Code Verification<br/>[smscode]"]
  node_oauth["OAuth2 / SSO<br/>[security]"]
end

subgraph group_distributed["Distributed Systems"]
  node_dubbo["Dubbo Services"]
  node_nacos["Nacos Examples"]
  node_sentinel["Sentinel Example<br/>[sentinel]"]
  node_batch["Batch Jobs<br/>[JobController.java]"]
end

subgraph group_framework["Spring Framework"]
  node_beanregistration["Bean Registration<br/>[mrbird]"]
  node_beanlifecycle["Bean Lifecycle<br/>[mrbird]"]
end

node_reader(("Tutorial User"))

node_reader -.->|"opens example"| node_thymeleaf
node_reader -.->|"submits login"| node_shirologin
node_reader -.->|"uses security"| node_securityconfig
node_reader -.->|"invokes example"| node_dubbo
node_mybatis -.->|"uses model"| node_student
node_jdbc -.->|"uses model"| node_student
node_multids -.->|"uses model"| node_student
node_thymeleaf -->|"uses model"| node_account
node_cache -->|"caches model"| node_student
node_pagehelper -->|"implements contract"| node_genericservice
node_sessionservice -->|"uses model"| node_useronline
node_securityconfig -.->|"configures lookup"| node_userdetails
node_userdetails -->|"constructs user"| node_myuser
node_shirologin -.->|"authenticates via"| node_shirorealm
node_shiroconfig -.->|"configures realm"| node_shirorealm

click node_bootconfig "https://github.com/wuyouzhuguli/springall/tree/master/02.Spring-Boot-Config/src/main/java/com/springboot/bean"
click node_properties "https://github.com/wuyouzhuguli/springall/blob/master/02.Spring-Boot-Config/src/main/java/com/springboot/bean/BlogProperties.java"
click node_configbean "https://github.com/wuyouzhuguli/springall/blob/master/02.Spring-Boot-Config/src/main/java/com/springboot/bean/ConfigBean.java"
click node_student "https://github.com/wuyouzhuguli/springall/blob/master/03.Spring-Boot-MyBatis/src/main/java/com/springboot/bean/Student.java"
click node_mybatis "https://github.com/wuyouzhuguli/springall/tree/master/03.Spring-Boot-MyBatis/src/main/java/com/springboot"
click node_jdbc "https://github.com/wuyouzhuguli/springall/tree/master/04.Spring-Boot-JdbcTemplate/src/main/java/com/springboot"
click node_multids "https://github.com/wuyouzhuguli/springall/tree/master/05.Spring-Boot-MyBatis-MultiDataSource/src/main/java/com/springboot"
click node_logging "https://github.com/wuyouzhuguli/springall/tree/master/07.Spring-Boot-AOP-Log/src/main/java/com/springboot"
click node_thymeleaf "https://github.com/wuyouzhuguli/springall/blob/master/08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/controller/IndexController.java"
click node_account "https://github.com/wuyouzhuguli/springall/blob/master/08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/bean/Account.java"
click node_cache "https://github.com/wuyouzhuguli/springall/blob/master/09.Spring-Boot-Redis-Cache/src/main/java/com/springboot/service/StudentService.java"
click node_exception "https://github.com/wuyouzhuguli/springall/blob/master/25.Spring-Boot-Exception/src/main/java/cc/mrbird/handler/ControllerExceptionHandler.java"
click node_filter "https://github.com/wuyouzhuguli/springall/tree/master/26.Spring-Boot-Filter-Interceptor/src/main/java/cc/mrbird"
click node_pagehelper "https://github.com/wuyouzhuguli/springall/blob/master/27.Spring-Boot-Mapper-PageHelper/src/main/java/com/springboot/service/impl/BaseService.java"
click node_genericservice "https://github.com/wuyouzhuguli/springall/blob/master/27.Spring-Boot-Mapper-PageHelper/src/main/java/com/springboot/service/IService.java"
click node_shirologin "https://github.com/wuyouzhuguli/springall/blob/master/11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/controller/LoginController.java"
click node_shirorealm "https://github.com/wuyouzhuguli/springall/blob/master/11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/shiro/ShiroRealm.java"
click node_shiroconfig "https://github.com/wuyouzhuguli/springall/blob/master/11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/config/ShiroConfig.java"
click node_shirovariants "https://github.com/wuyouzhuguli/springall/tree/master/13.Spring-Boot-Shiro-Authorization/src/main/java/com/springboot"
click node_useronline "https://github.com/wuyouzhuguli/springall/blob/master/17.Spring-Boot-Shiro-Session/src/main/java/com/springboot/pojo/UserOnline.java"
click node_sessionservice "https://github.com/wuyouzhuguli/springall/blob/master/17.Spring-Boot-Shiro-Session/src/main/java/com/springboot/service/SessionService.java"
click node_securityconfig "https://github.com/wuyouzhuguli/springall/blob/master/35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/BrowserSecurityConfig.java"
click node_userdetails "https://github.com/wuyouzhuguli/springall/blob/master/35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/UserDetailService.java"
click node_myuser "https://github.com/wuyouzhuguli/springall/blob/master/60.Spring-Security-Logout/src/main/java/cc/mrbird/domain/MyUser.java"
click node_verification "https://github.com/wuyouzhuguli/springall/tree/master/38.Spring-Security-SmsCode/src/main/java/cc/mrbird/validate/smscode"
click node_oauth "https://github.com/wuyouzhuguli/springall/tree/master/63.Spring-Security-OAuth2-Guide/src/main/java/cc/mrbird/security"
click node_dubbo "https://github.com/wuyouzhuguli/springall/tree/master/40.Spring-Boot-Dubbo-Zookeeper"
click node_nacos "https://github.com/wuyouzhuguli/springall/tree/master/74.spring-cloud-alibaba-nacos-register"
click node_sentinel "https://github.com/wuyouzhuguli/springall/tree/master/77.spring-cloud-alibaba-sentinel-dashboard-guide/src/main/java/cc/mrbird/sentinel"
click node_batch "https://github.com/wuyouzhuguli/springall/blob/master/73.spring-batch-launcher/src/main/java/cc/mrbird/batch/controller/JobController.java"
click node_beanregistration "https://github.com/wuyouzhuguli/springall/tree/master/50.Spring-Regist-Bean/src/main/java/cc/mrbird"
click node_beanlifecycle "https://github.com/wuyouzhuguli/springall/tree/master/51.Spring-Bean-Lifecycle/src/main/java/cc/mrbird"

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_bootconfig,node_properties,node_configbean,node_student,node_mybatis,node_jdbc,node_multids,node_logging,node_thymeleaf,node_account,node_cache,node_exception,node_filter,node_pagehelper,node_genericservice,node_reader toneBlue
class node_shirologin,node_shirorealm,node_shiroconfig,node_shirovariants,node_useronline,node_sessionservice toneAmber
class node_securityconfig,node_userdetails,node_myuser,node_verification,node_oauth toneMint
class node_dubbo,node_nacos,node_sentinel,node_batch toneRose
class node_beanregistration,node_beanlifecycle toneIndigo
```

## Components

### Spring Boot Examples

- [Configuration](https://github.com/wuyouzhuguli/springall/tree/master/02.Spring-Boot-Config/src/main/java/com/springboot/bean): `02.Spring-Boot-Config/src/main/java/com/springboot/bean`
- [Blog Properties](https://github.com/wuyouzhuguli/springall/blob/master/02.Spring-Boot-Config/src/main/java/com/springboot/bean/BlogProperties.java): `02.Spring-Boot-Config/src/main/java/com/springboot/bean/BlogProperties.java`
- [Config Beans](https://github.com/wuyouzhuguli/springall/blob/master/02.Spring-Boot-Config/src/main/java/com/springboot/bean/ConfigBean.java): `02.Spring-Boot-Config/src/main/java/com/springboot/bean/ConfigBean.java`
- [Student Model](https://github.com/wuyouzhuguli/springall/blob/master/03.Spring-Boot-MyBatis/src/main/java/com/springboot/bean/Student.java): `03.Spring-Boot-MyBatis/src/main/java/com/springboot/bean/Student.java`
- [MyBatis Access](https://github.com/wuyouzhuguli/springall/tree/master/03.Spring-Boot-MyBatis/src/main/java/com/springboot): `03.Spring-Boot-MyBatis/src/main/java/com/springboot`
- [JdbcTemplate Access](https://github.com/wuyouzhuguli/springall/tree/master/04.Spring-Boot-JdbcTemplate/src/main/java/com/springboot): `04.Spring-Boot-JdbcTemplate/src/main/java/com/springboot`
- [Multiple Data Sources](https://github.com/wuyouzhuguli/springall/tree/master/05.Spring-Boot-MyBatis-MultiDataSource/src/main/java/com/springboot): `05.Spring-Boot-MyBatis-MultiDataSource/src/main/java/com/springboot`
- [AOP Logging](https://github.com/wuyouzhuguli/springall/tree/master/07.Spring-Boot-AOP-Log/src/main/java/com/springboot): `07.Spring-Boot-AOP-Log/src/main/java/com/springboot`
- [Thymeleaf Views](https://github.com/wuyouzhuguli/springall/blob/master/08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/controller/IndexController.java): `08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/controller/IndexController.java`
- [Account Model](https://github.com/wuyouzhuguli/springall/blob/master/08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/bean/Account.java): `08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/bean/Account.java`
- [Redis / Ehcache](https://github.com/wuyouzhuguli/springall/blob/master/09.Spring-Boot-Redis-Cache/src/main/java/com/springboot/service/StudentService.java): `09.Spring-Boot-Redis-Cache/src/main/java/com/springboot/service/StudentService.java`
- [Exception Handling](https://github.com/wuyouzhuguli/springall/blob/master/25.Spring-Boot-Exception/src/main/java/cc/mrbird/handler/ControllerExceptionHandler.java): `25.Spring-Boot-Exception/src/main/java/cc/mrbird/handler/ControllerExceptionHandler.java`
- [Filters / Interceptors](https://github.com/wuyouzhuguli/springall/tree/master/26.Spring-Boot-Filter-Interceptor/src/main/java/cc/mrbird): `26.Spring-Boot-Filter-Interceptor/src/main/java/cc/mrbird`
- [Mapper Pagination](https://github.com/wuyouzhuguli/springall/blob/master/27.Spring-Boot-Mapper-PageHelper/src/main/java/com/springboot/service/impl/BaseService.java): `27.Spring-Boot-Mapper-PageHelper/src/main/java/com/springboot/service/impl/BaseService.java`
- [Service Contract](https://github.com/wuyouzhuguli/springall/blob/master/27.Spring-Boot-Mapper-PageHelper/src/main/java/com/springboot/service/IService.java): `27.Spring-Boot-Mapper-PageHelper/src/main/java/com/springboot/service/IService.java`

### Shiro Security

- [Shiro Login](https://github.com/wuyouzhuguli/springall/blob/master/11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/controller/LoginController.java): `11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/controller/LoginController.java`
- [Shiro Realm](https://github.com/wuyouzhuguli/springall/blob/master/11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/shiro/ShiroRealm.java): `11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/shiro/ShiroRealm.java`
- [Shiro Configuration](https://github.com/wuyouzhuguli/springall/blob/master/11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/config/ShiroConfig.java): `11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/config/ShiroConfig.java`
- [Shiro Extensions](https://github.com/wuyouzhuguli/springall/tree/master/13.Spring-Boot-Shiro-Authorization/src/main/java/com/springboot): `13.Spring-Boot-Shiro-Authorization/src/main/java/com/springboot`
- [Online Sessions](https://github.com/wuyouzhuguli/springall/blob/master/17.Spring-Boot-Shiro-Session/src/main/java/com/springboot/pojo/UserOnline.java): `17.Spring-Boot-Shiro-Session/src/main/java/com/springboot/pojo/UserOnline.java`
- [Session Service](https://github.com/wuyouzhuguli/springall/blob/master/17.Spring-Boot-Shiro-Session/src/main/java/com/springboot/service/SessionService.java): `17.Spring-Boot-Shiro-Session/src/main/java/com/springboot/service/SessionService.java`

### Spring Security

- [Browser Security](https://github.com/wuyouzhuguli/springall/blob/master/35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/BrowserSecurityConfig.java): `35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/BrowserSecurityConfig.java`
- [User Lookup](https://github.com/wuyouzhuguli/springall/blob/master/35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/UserDetailService.java): `35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/UserDetailService.java`
- [User Model](https://github.com/wuyouzhuguli/springall/blob/master/60.Spring-Security-Logout/src/main/java/cc/mrbird/domain/MyUser.java): `60.Spring-Security-Logout/src/main/java/cc/mrbird/domain/MyUser.java`
- [Code Verification](https://github.com/wuyouzhuguli/springall/tree/master/38.Spring-Security-SmsCode/src/main/java/cc/mrbird/validate/smscode): `38.Spring-Security-SmsCode/src/main/java/cc/mrbird/validate/smscode`
- [OAuth2 / SSO](https://github.com/wuyouzhuguli/springall/tree/master/63.Spring-Security-OAuth2-Guide/src/main/java/cc/mrbird/security): `63.Spring-Security-OAuth2-Guide/src/main/java/cc/mrbird/security`

### Distributed Systems

- [Dubbo Services](https://github.com/wuyouzhuguli/springall/tree/master/40.Spring-Boot-Dubbo-Zookeeper): `40.Spring-Boot-Dubbo-Zookeeper`
- [Nacos Examples](https://github.com/wuyouzhuguli/springall/tree/master/74.spring-cloud-alibaba-nacos-register): `74.spring-cloud-alibaba-nacos-register`
- [Sentinel Example](https://github.com/wuyouzhuguli/springall/tree/master/77.spring-cloud-alibaba-sentinel-dashboard-guide/src/main/java/cc/mrbird/sentinel): `77.spring-cloud-alibaba-sentinel-dashboard-guide/src/main/java/cc/mrbird/sentinel`
- [Batch Jobs](https://github.com/wuyouzhuguli/springall/blob/master/73.spring-batch-launcher/src/main/java/cc/mrbird/batch/controller/JobController.java): `73.spring-batch-launcher/src/main/java/cc/mrbird/batch/controller/JobController.java`

### Spring Framework

- [Bean Registration](https://github.com/wuyouzhuguli/springall/tree/master/50.Spring-Regist-Bean/src/main/java/cc/mrbird): `50.Spring-Regist-Bean/src/main/java/cc/mrbird`
- [Bean Lifecycle](https://github.com/wuyouzhuguli/springall/tree/master/51.Spring-Bean-Lifecycle/src/main/java/cc/mrbird): `51.Spring-Bean-Lifecycle/src/main/java/cc/mrbird`

### Other components

- **Tutorial User**

## Connections

- Tutorial User → Thymeleaf Views: opens example
- Tutorial User → Shiro Login: submits login
- Tutorial User → Browser Security: uses security
- Tutorial User → Dubbo Services: invokes example
- MyBatis Access → Student Model: uses model
- JdbcTemplate Access → Student Model: uses model (evidence: `04.Spring-Boot-JdbcTemplate/src/main/java/com/springboot/service/StudentService.java`)
- Multiple Data Sources → Student Model: uses model
- Thymeleaf Views → Account Model: uses model (evidence: `08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/controller/IndexController.java`)
- Redis / Ehcache → Student Model: caches model (evidence: `09.Spring-Boot-Redis-Cache/src/main/java/com/springboot/service/StudentService.java`)
- Mapper Pagination → Service Contract: implements contract (evidence: `27.Spring-Boot-Mapper-PageHelper/src/main/java/com/springboot/service/impl/BaseService.java`)
- Session Service → Online Sessions: uses model (evidence: `17.Spring-Boot-Shiro-Session/src/main/java/com/springboot/service/SessionService.java`)
- Browser Security → User Lookup: configures lookup
- User Lookup → User Model: constructs user (evidence: `35.Spring-Security-Authentication/src/main/java/cc/mrbird/security/browser/UserDetailService.java`)
- Shiro Login → Shiro Realm: authenticates via
- Shiro Configuration → Shiro Realm: configures realm
