In previous chapters, we discussed various topics related to application development with Spring, including Spring’s
ApplicationContext configuration, various DI mechanisms, AOP support for cross-cutting concerns, and how Spring integrates with different data access technologies for interacting with backend relational databases.
When discussing implementations of data access logic, you saw how to use different implementation patterns. For example, in Chapter 8, which covered data access with JDBC, the data access logic was encapsulated in DAOs. In Chapters 10 and 11, when discussing JPA and MyBatis, we eliminated the DAO layer and had the JPA’s
EntityManager and MyBatis’s ...