The service layer is typically the place where declarative enterprise services (such as transactions) are used. Declarative enterprise services such as transactions and security are great examples of requirements that impact many points in the application. In fact, even if you only wanted (say) transaction demarcation in a single place, it is still desirable to separate this function from your app
![Simplifying Enterprise Applications with Spring 2.0 and AspectJ](https://cdn-ak-scissors.b.st-hatena.com/image/square/388b3b0159bde3cf644fc8fe6ede10420e8e6a99/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s2_20221117075519%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)