• An interface that defines the functions. • An Implementation that contains properties, its setter and getter methods, functions etc., • Spring AOP (Aspect Oriented Programming) • A XML file called Spring configuration file. • Client program that uses the function.