Service classes
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 class implementations calls REST-based services, while the other one reads data from properties files. The latter can be used to test the application offline. The one that calls REST services is used in the production environment. Both of them implement the ProductLookup
interface:
package packt.java9.by.example.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 the service methods when they start, but it loads the data only if it is not loaded yet:
package packt.java9.by.example...