Spring PSA

What Is PSA (Portable Service Abstraction)?

PSA stands for Portable Service Abstraction. It is an abstraction structure that provides a consistent way to access technologies regardless of environmental changes. External libraries used with Spring are designed to operate through the same interface even when their internal implementations differ, so you do not need to consider their dependencies.

Service abstraction means abstracting several technologies with similar characteristics so that they can be used consistently. JDBC is a good example. Because JDBC is a standard specification, you can write code in the same way regardless of whether the DBMS is Oracle or MySQL. Service abstraction applies a design pattern, such as the adapter pattern, to control multiple technologies through a common interface.

Spring provides PSA for various technologies, including OXM, ORM, caching, and transactions.

In this respect, Spring PSA is a representative example of the Open-Closed Principle (OCP): open for extension and closed for modification.