[[spring-core]]
= Core Technologies
include::attributes.adoc[]
include::page-layout.adoc[]

This part of the reference documentation covers all the technologies that are
absolutely integral to the Spring Framework.

Foremost amongst these is the Spring Framework's Inversion of Control (IoC) container.
A thorough treatment of the Spring Framework's IoC container is closely followed by
comprehensive coverage of Spring's Aspect-Oriented Programming (AOP) technologies.
The Spring Framework has its own AOP framework, which is conceptually easy to
understand and which successfully addresses the 80% sweet spot of AOP requirements
in Java enterprise programming.

Coverage of Spring's integration with AspectJ (currently the richest -- in terms of
features -- and certainly most mature AOP implementation in the Java enterprise space)
is also provided.

AOT processing can be used to optimize your application ahead-of-time. It is typically
used for native image deployment using GraalVM.

include::core/core-beans.adoc[leveloffset=+1]

include::core/core-resources.adoc[leveloffset=+1]

include::core/core-validation.adoc[leveloffset=+1]

include::core/core-expressions.adoc[leveloffset=+1]

include::core/core-aop.adoc[leveloffset=+1]

include::core/core-aop-api.adoc[leveloffset=+1]

include::core/core-null-safety.adoc[leveloffset=+1]

include::core/core-databuffer-codec.adoc[leveloffset=+1]

include::core/core-spring-jcl.adoc[leveloffset=+1]

include::core/core-aot.adoc[leveloffset=+1]

include::core/core-appendix.adoc[leveloffset=+1]
