Sling Context-Aware Configuration (sling.caconfig) resolves configuration values based on where in the content tree a request is being processed, rather than from a single global OSGi configuration.
A page under /content/site-a and one under /content/site-b can each resolve the same configuration name to different values.
Configuration values are stored under /conf, and content resources opt in via a sling:configRef property pointing at their config context. Resolution walks up the content tree looking for the nearest sling:configRef, then reads the matching node under /conf.
Java code reads typed configuration through ConfigurationBuilder, backed by an annotation-defined config class — no manual property lookups required.