Разница между аннотациями @AspectJ и @Component в Spring AOP заключается в их назначении:
- @AspectJ используется для объявления класса как аспекта, который является модульной единицей сквозных задач в Spring AOP. stackoverflow.com С её помощью можно, например, определять точки соединения и контролировать время выполнения советов. javarush.com
- @Component применяется к классу аспекта и указывает Spring рассматривать его как обычный компонент Spring и управлять его жизненным циклом. stackoverflow.com Если удалить эту аннотацию, Spring больше не будет рассматривать аспект как управляемый компонент, и его рекомендации не будут применены к целевым методам. stackoverflow.com
Таким образом, основное различие в том, что @AspectJ определяет класс как аспект, а @Component позволяет управлять его поведением в контексте Spring.