Какая банка мне нужна для использования аннотации Spring AOP AspectJ?

Я новичок в Spring. Я пытаюсь использовать аннотацию Spring AOP, как следующий код.

@Aspect
public class A {
    @Pointcut("execution(* Operation.*(..))")
    public void b(){} 

    @Before("b()") 
    public void c(JoinPoint jp)
    {
        System.out.println("a");
    }
}

В моих библиотеках, на которые я ссылаюсь, я помещаю все весенние банки (аоп, ядро, аспекты, компоненты, контекст, инструмент, jdbc, jms, web, webmvc и т. д.)

Я нашел еще одну банку аспектj-1.9.3.jar и добавил ее в свои библиотеки в моем затмение. Однако я не могу импортировать org.aspectj.lang.* (что мне нужно). Мой Eclipse, похоже, не находит его.

Нашел ли я нужную банку? (значит проблема в другом?) Или нужна еще одна баночка? Я пытаюсь сделать это без использования Мавен.

У этого аспектj-1.9.3.jar есть org.aspectj.lang.*?

Dred 05.04.2019 09:34

О, у него есть аспектj-1.9.3.jar\files\lib\aspectjrt.jar\org\aspectj\lang. Может быть, потому что вы уже импортировали тот же пакет из другой библиотеки, поэтому Eclipse не видит разницы?

Dred 05.04.2019 09:37

@Dred Я скачал это с сайта фонда Eclipse. Я не был уверен, что я получил правильный, или мне нужна дополнительная банка. аспект j-1.9.3 должен работать?

Jin Lee 05.04.2019 09:39

Я тоже скачал. Любая ошибка или предупреждение от Eclipse?

Dred 05.04.2019 09:43

@Dred У меня просто красная линия в моем Eclipse. Я обновил его, но Eclipse, похоже, этого не замечает.

Jin Lee 05.04.2019 09:44

@Dred спасибо за советы. Хорошего дня~

Jin Lee 05.04.2019 09:47

@Dred Я скачал банку из места, указанного ниже, и скачал аспектjtools-1.8.9.jar, и он работает!

Jin Lee 05.04.2019 09:48

Хорошая новость) Добрый день

Dred 05.04.2019 09:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
8
1 662
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
org.aspectj.lang.joinpoint is part of the aspectj tool library. 

Добавьте это в Maven:

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjtools</artifactId>
    <version>1.8.9</version>
</dependency>

Спасибо за ваш ответ. Но, как я уже писал, я стараюсь избегать использования Maven. Не могли бы вы добавить ссылку, где я могу скачать эту банку?

Jin Lee 05.04.2019 09:40

Ага!! mvnrepository.com/artifact/org.aspectj/aspectjtools/1.8.9. Скачать баночку оттуда

Anish B. 05.04.2019 09:41

Я не знал, что оттуда можно скачать банку. Я думал, что могу получить зависимость только от этого сайта. Я сейчас смотрю на страницу. И у меня есть еще один тупой вопрос. Я могу найти любую кнопку для загрузки :(

Jin Lee 05.04.2019 09:43

Вы можете найти почти любые опубликованные jar-файлы в search.maven.org или bintray.com/bintray/jcenter, это два основных центральных репозитория. Это стандартные места, которые Maven или Gradle используют для загрузки зависимостей.

James Mudd 05.04.2019 09:44

@ Аниш Б. Я нашел кнопку. Извини за это. хаха.. Теперь я знаю!! Спасибо

Jin Lee 05.04.2019 09:46

[эта] (Central.maven.org/maven2/org/aspectj/aspectjtools/1.9.2/…) ссылка работает. Но поможет ли это вам

Dred 05.04.2019 09:46
инструменты слишком жирный и ненужный, он нужен вам только в том случае, если вы хотите использовать компилятор AspectJ из своего кода. OP даже не использует полный AspectJ, только Spring AOP. Так что аспект должно быть достаточно. Даже для полного AspectJ с переплетением во время загрузки (LTW) вам нужен только аспектжвивер, который является надмножеством аспект и подмножеством инструменты. Если аспект не работает, вы делаете ошибку. Возможно, вы забыли добавить библиотеку в свой проект.
kriegaex 07.04.2019 05:32

Ниже я упомянул легкие банки, так как aspectjtools слишком велик.

compile group: 'org.springframework', name: 'spring-aop', version: '5.1.5.RELEASE'
compile group: 'aspectj', name: 'aspectjweaver', version: '1.5.4'

Размер банок:

aspectjtools 1.9.2: 13.2 MB // too big

А также

 aspectjweaver 1.9.2: 2.0 MB,  // too small as compared to aspectjtools jar
 spring AOP 5.1.5: 360 KB

Поэтому избегайте использования jar-файла aspectjtools, так как он слишком большой.

спасибо за вашу хорошую информацию. таким образом, аспект jweaver и spring AOP могут заменить аспект jtools?

Jin Lee 18.04.2019 01:30

Да, для реализации Spring AOP вы можете заменить его

Bishal Jaiswal 18.04.2019 05:42

Другие вопросы по теме