Since we had a single product, we just instantiated it in the controller itself and successfully showed the product information on our web page. But a typical web store would contain thousands of products, so all the product information for them would usually be stored in a database. This means we need to make our ProductController
smart enough to load all the product information from the database into the model. But if we write all the data retrieval logic to retrieve the product information from the database in the ProductController
itself, our ProductController
will blow up into a big chunk of files. And logically speaking, data retrieval is not the duty of the controller because the controller is a Presentation layer component. And moreover, we want to organize the data retrieval code into a separate layer, so that we can reuse that logic as much as possible from the other controllers and layers.
So how do we retrieve data from a database in a Spring MVC way? Here...