A Spring application, generally consists of following components:
In Dependency Injection, you do not have to create your objects but have to describe how they should be created. You don’t connect your components and services together in the code directly, but describe which services are needed by which components in the configuration file. The IoC container will wire them up together.
Controllers provide access to the application behavior. These behaviors are generally defined through a service interface. Controllers interpret the user input and transform it into a model which is represented to the user by the view. In Spring, controller is implemented in a very abstract way. It also enables you to create a wide variety of controllers.
An object which is created after applying advice to a target object is known as a Proxy. In case of client objects the target object and the proxy object are the same
It is an alternative container configuration to the previously mentioned XML. This type of configuration is mainly focused on the bytecode metadata.
Bean wiring or wiring is the process of combining beans with the Spring container. It is essential to tell the container what beans are required and how it should use dependency injection to wire or tie them together.