We have two service classes. These classes serve the controllers with data and implement the business logic, no matter how simple they are. One of the service classes implements calls to REST-based services, while the other one reads data from properties files. The latter can be used to test the application when it's offline. The one that calls REST services is used in the production environment. Both of them implement the ProductLookup interface:
package packt.java11.mybusiness.productinformation; import java.util.List; public interface ProductLookup { ProductInformation byId(String id); List<String> byQuery(String query); }
ResourceBasedProductLookup stores the whole database in a map called products. It is filled from the properties files when one of the service methods is invoked. The private method, loadProducts, is invoked from each of...