Почему Spring AOP не создает внешние jar-файлы во время выполнения?

У меня есть Java-приложение, построенное на Spring 3. В этом проекте есть еще одна jar-зависимость в качестве зависимости.

Эта зависимость содержит класс @ org.aspectj.lang.annotation.Aspect (скажем, com.aspectprovider.aspects.MyAspect ). Там есть @Before совет сплести метод из классов, реализующий интерфейс Foo . Примерно:

@Before("execution(* com.project.Foo.save(..))")

Интерфейс Foo может находиться внутри «проекта» или в другом jar-файле. В данном примере это не имеет значения.

Мой проект содержит классы, реализующие Foo . Это те классы, которые я хочу, конечно, объединить.

Мой файл конфигурации контекста приложения Spring ( applicationContext.xml ) содержит строку:

<aop:aspectj-autoproxy />

Я также объявляю аспект как bean-компонент , и введите некоторые свойства:

<bean id="myAspect" class="com.aspectprovider.aspects.MyAspect"
  factory-method="aspectOf" >
  <property name="someproperty" value="somevalue" />
</bean>

Через ведение журнала я вижу, что создается экземпляр MyAspect и вводятся свойства. Но метод save не перехватывается. Это проблема.

Если я скопирую классы аспектов из jar-файла в приложение, в котором есть Spring, это сработает. Когда эти аспекты содержатся во внешних jar-файлах, сохранение метода не перехватывается. Есть какие-нибудь подсказки?

править: int * my_pointer = 0; my_pointer = & my_array // ошибка компилятора my_pointer = my_array // хорошо Если my_array - это адрес массива, то что мне дает & my_array?

int my_array[5] = {0};
int *my_pointer = 0;

my_pointer = &my_array // compiler error
my_pointer = my_array // ok

Если my_array - это адрес массива, то что мне дает & my_array ?

13
задан Ciro Santilli 新疆改造中心法轮功六四事件 11 May 2016 в 17:42
поделиться