AspectJ отличается от обычного Spring MVC тем, что фокусируется на разных аспектах аспектно-ориентированного программирования (AOP). 14
Spring MVC использует подход на основе прокси, оборачивая компоненты в прокси для достижения таких целей, как управление транзакциями. 1 Это простой и понятный способ реализации наиболее распространённых проблем AOP. 1
AspectJ, в свою очередь, позволяет изменять фактический байт-код путём ткачества времени загрузки или ткачества времени компиляции. 1 Это даёт больше возможностей, но увеличивает сложность разработки. 1
Таким образом, Spring MVC ориентирован на работу с проксимированными компонентами Spring, в то время как AspectJ подходит для работы с объектами, не управляемыми контейнером Spring, например доменными объектами. 3