A typical Spring application can be subdivided into the following components:
Bean Class – Contains properties, functions, setter and getter methods, et cetera
Bean Configuration File – Contains information on classes as well as how to configure the same
Interface – Defines the functions
Spring Aspect Oriented Programming – Provides functionality of cross-cutting concerns
User Program – Uses the function