# xuchengsheng/spring-reading

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/xuchengsheng-spring-reading).**

9,921 stars · 1,261 forks · Java · MIT

## Links

- GitHub: https://github.com/xuchengsheng/spring-reading
- Homepage: https://blog.csdn.net/duzhuang2399
- awesome-repositories: https://awesome-repositories.com/repository/xuchengsheng-spring-reading.md

## Topics

`annotations` `awareinterface` `backenddevelopment` `java` `javabackend` `mybatis` `mybatis-plus` `opensource` `servlet` `sourcecodeanalysis` `spring` `spring-aop` `spring-boot` `spring-cloud` `spring-data-jpa` `spring-security` `springboot2` `springframework` `springmvc` `web`

## Description

This is a learning resource that explains the Spring Framework through source code analysis and practical examples. It covers the foundational principles of Inversion of Control and Dependency Injection, demonstrating how the IoC container manages bean definitions, dependency injection, and lifecycle callbacks. The material also explores Spring's Aspect-Oriented Programming implementation, showing how cross-cutting concerns like logging and security are handled through proxy-based weaving.

The resource provides walkthroughs of Spring Boot's automatic configuration mechanism, detailing how conditional beans and property bindings simplify application setup. It includes a detailed examination of the Spring MVC request handling flow, controller mechanisms, and view resolution process. Transaction management is covered both declaratively and programmatically through Spring's transaction abstraction layer.

The documentation covers core Spring concepts including annotation-driven configuration, classpath component scanning, property source resolution, and the Spring Expression Language. It explains how to configure bean definitions using XML, annotations, or programmatic approaches, and how to customize bean initialization with post-processors and aware interfaces. The material traces the full bean lifecycle from definition registration through initialization, dependency resolution, and destruction.

## Tags

### Education & Learning Resources

- [Spring Framework Resources](https://awesome-repositories.com/f/education-learning-resources/java-virtual-machine-learning-resources/spring-framework-resources.md) — Provides educational materials and code examples explaining Spring's core concepts through source code analysis.

### Software Engineering & Architecture

- [Dependency Injection Containers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-containers.md) — Manages object lifecycle and dependency injection through a centralized container that resolves bean definitions at runtime.
- [Annotation-Driven Configuration](https://awesome-repositories.com/f/software-engineering-architecture/annotation-driven-configuration.md) — Explains how Java annotations replace XML for declaring beans, dependencies, and configuration metadata.
- [Bean Definition Configurations](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/hierarchical-configuration-systems/bean-definition-hierarchies/bean-definition-configurations.md) — Explains how to define bean metadata using XML, annotations, or programmatic approaches for dependency injection. ([source](https://cdn.jsdelivr.net/gh/xuchengsheng/spring-reading@master/README.md))
- [Aspect-Oriented Programming](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/aspect-oriented-programming.md) — Implements cross-cutting concerns like logging and security separately from business logic using Spring AOP.
- [Property Source Resolvers](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-schema-mapping/component-mappings/runtime-property-resolvers/property-source-resolvers.md) — Loads and resolves configuration values from multiple property sources with placeholder and profile support. ([source](https://cdn.jsdelivr.net/gh/xuchengsheng/spring-reading@master/README.md))
- [Inversion-of-Control Containers](https://awesome-repositories.com/f/software-engineering-architecture/inversion-of-control-containers.md) — Demonstrates how Spring's IoC container manages bean definitions, dependency injection, and lifecycle callbacks.
- [Lifecycle Callbacks](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-callbacks.md) — Orchestrates bean initialization and destruction through ordered callback interfaces and annotations.
- [Method Interception Proxies](https://awesome-repositories.com/f/software-engineering-architecture/method-interception-proxies.md) — Demonstrates runtime proxy generation to intercept method calls for cross-cutting concerns like logging and transactions.
- [Spring MVC Implementations](https://awesome-repositories.com/f/software-engineering-architecture/mvc-frameworks/spring-mvc-implementations.md) — Covers Spring MVC request handling flow, controller mechanisms, and view resolution process.
- [Auto-Configuration Mechanisms](https://awesome-repositories.com/f/software-engineering-architecture/spring-boot-integrations/auto-configuration-mechanisms.md) — Details Spring Boot's automatic configuration mechanism with conditional beans and property bindings.
- [Expression Languages](https://awesome-repositories.com/f/software-engineering-architecture/expression-languages.md) — Parses and evaluates Spring Expression Language strings at runtime to access object graphs and invoke methods.
- [AOP](https://awesome-repositories.com/f/software-engineering-architecture/implementation-guides/aop.md) — Provides a reference illustrating Spring AOP principles with practical examples of cross-cutting concerns and proxy-based weaving.
- [SpEL Expression Parsers](https://awesome-repositories.com/f/software-engineering-architecture/stacks/expression-parsing/spel-expression-parsers.md) — Parses and evaluates Spring Expression Language strings for dynamic property access and method invocation. ([source](https://cdn.jsdelivr.net/gh/xuchengsheng/spring-reading@master/README.md))

### Data & Databases

- [Bean Post-Processor Pipelines](https://awesome-repositories.com/f/data-databases/data-lookup-interfaces/dynamic-bean-lookups/synthetic-bean-factories/bean-post-processor-pipelines.md) — Walks through the pipeline of bean post-processors that intervene in bean creation and initialization.
- [Database Transaction Management](https://awesome-repositories.com/f/data-databases/database-transaction-management.md) — Manages database transactions declaratively or programmatically with Spring's transaction abstraction layer.
- [Bean Lifecycle Tracers](https://awesome-repositories.com/f/data-databases/transaction-controls/transactional-bean-lifecycle/bean-lifecycle-tracers.md) — Traces the full bean lifecycle from definition registration through initialization, dependency resolution, and destruction. ([source](https://cdn.jsdelivr.net/gh/xuchengsheng/spring-reading@master/README.md))

### Development Tools & Productivity

- [Bean Initialization Customizations](https://awesome-repositories.com/f/development-tools-productivity/data-injection/template-bean-injections/bean-initialization-customizations.md) — Covers customizing bean initialization with post-processors and aware interfaces for setup and cleanup logic. ([source](https://cdn.jsdelivr.net/gh/xuchengsheng/spring-reading@master/README.md))
- [Classpath Component Scanners](https://awesome-repositories.com/f/development-tools-productivity/scan-configurations/workflow-scanning/automatic-scan-terminations/classpath-component-scanners.md) — Covers automatic discovery of annotated classes and their registration as beans during context initialization.
- [Framework Internals Walkthroughs](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/static-code-analyzers/source-code-analysis/framework-internals-walkthroughs.md) — Provides in-depth examination of Spring's programming style and design patterns through annotated source code walkthroughs.

### Programming Languages & Runtimes

- [Classpath Component Scanners](https://awesome-repositories.com/f/programming-languages-runtimes/partial-class-extensions/external-classpath-extensions/classpath-component-scanners.md) — Scans the classpath for annotated classes and automatically registers them as beans in the application context. ([source](https://cdn.jsdelivr.net/gh/xuchengsheng/spring-reading@master/README.md))

### User Interface & Experience

- [Property Source Resolvers](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/rendering-models/composition-rendering-patterns/component-patterns/default-property-values/property-placeholders/property-source-resolvers.md) — Loads configuration from multiple property sources with placeholder substitution and profile support.
