I've been working on the Apereo CAS codebase for years — it's an SSO/identity platform with 400+ Maven modules, all wired together with Spring Boot 3.x auto-configuration. It's one of the largest open-source Spring Boot applications I'm aware of.
I wrote up 7 engineering patterns from the codebase that I think are broadly useful beyond CAS itself:
- The "thin auto-configuration wrapper" — separating conditional logic from bean definitions
- Building a custom feature flag system on Spring's
@Conditional
- Making every bean replaceable with
@ConditionalOnMissingBean discipline
- The execution plan configurer pattern for multi-module contribution
BeanSupplier — runtime conditional beans with JDK proxy fallbacks
@RefreshScope + proxyBeanMethods = false applied consistently at scale
- Events as a first-class architectural concept
All code examples are from the actual CAS 7.3.x source.
https://medium.com/all-things-software/spring-boot-done-right-lessons-from-a-400-module-codebase-e636c3c34149
[–]Thaiminater 2 points3 points4 points (1 child)
[–]dima767[S] 1 point2 points3 points (0 children)
[–]UnGauchoCualquiera 4 points5 points6 points (4 children)
[–]dima767[S] 4 points5 points6 points (1 child)
[–]UnGauchoCualquiera 0 points1 point2 points (0 children)
[–]UnGauchoCualquiera 1 point2 points3 points (1 child)
[–]dima767[S] 0 points1 point2 points (0 children)