Cross-cutting concerns and concerns in Spring AOP are terms used to describe aspects of code that can be applied to multiple classes or components. For example, a good example of a cross-cutting concern would be logging, which is useful for tracking every action within an application. When such functionality is implemented as a stand-alone feature, it has to be repeated across various classes and components even if the core business logic behind it remains the same. To avoid this problem, Aspect Oriented Programming (AOP) allows developers to be concerned about establishing these common functionalities once and then set up a pointcut abstraction. This then makes it easy for these common functions to act upon all relevant classes at the same time without having to repeat the core logic each time. Spring AOP provides this type of solution for enterprise applications, making it possible for developers using Spring Framework to write clean modular code with consistent design abstractions where convenient cross cutting concerns logically fit in without compromising system architecture.