Обновление 5: Я загрузил последнюю версию Spring ToolsSuite IDE на основе последнего Eclipse. Когда я импортирую проект как проект Maven, Eclipse/STS, похоже, использует цели Maven для создания моего проекта. Это означает, что AspectJ, наконец, корректно работает в Eclipse.
Обновление 4: Я просто использовал Maven + AspectJ-плагин для компиляции во времени, эффективно минуя механизм Eclipse.
Обновление 3: Кажется, что плагин AspectJ Eclipse разбивает способность Eclipse правильно опубликовать Tomcat. Только удалив возможность AspectJ в проекте, я могу заставить его правильно опубликовать. Очень раздражает.
Обновление 2: У меня теперь это работает в Eclipse. Мне очень неудобно говорить об этом, но я понятия не имею, как я получил работу от сборки Eclipse или Maven. Это, скорее всего, проблема компиляции, а не проблема времени выполнения.
Обновление 1: Похоже, я получил это, чтобы работать через сборки Maven, но я понятия не имею, как это сделать. Eclipse все еще не работает. Единственное, что я изменил в pom.xml, это добавить эти (незначительные?) Параметры конфигурации:
<source>1.6</source>
<complianceLevel>1.6</complianceLevel>
<verbose>true</verbose>
<showWeaveInfo>true</showWeaveInfo>
<outxml>true</outxml>
Я действительно беспокоюсь, что у меня есть повторение этой проблемы, где все работает непоследовательно. Я буду держать этот вопрос в курсе, когда узнаю больше.
Что касается Eclipse, я сделал некоторый прогресс, взяв двоичные аспекты, которые я хотел бы сплести - в этом случае spring -aspects.jar - и скопировать его из моего пути к классам. Затем я добавляю эту внешнюю банку в мой Aspect Path. После этого Eclipse правильно показывает мне маркеры AspectJ в моем коде. Это раздражает, что я не могу просто оставить spring -aspects.jar в моем пути сборки Java, который поддерживается Maven для меня через плагин Maven. По какой-то причине, однако, плагин AspectJ не видит двоичные аспекты, если они явно не добавлены в Aspect Path.
Исходный пост: @Configurable - это аннотация Spring, которая позволяет вставлять зависимости в объекты, созданные вне объекта Spring (например, с помощью Hibernate или некоторого класса Factory).
Я использовал эту аннотацию ранее с переплетением во времени и в основном работал. Иногда я загружался, и ничего не вводили. Эта проблема породила qaru.site/info/204128/.... Было не так много ответов, но большинство из них предложило вместо этого попытаться скомпилировать время за счет большей надежности.
Я установил плагин AspectJ для Eclipse и Maven. Оба они производят то, что кажется правильно скомпилированными классами. Я открыл один из классов в текстовом редакторе перед сборкой AspectJ и не нашел ссылок на AspectJ. Я открыл его после компиляции AspectJ, и обе сгенерированные версии Eclipse и Maven имеют ссылку на org.aspectj.weaver.MethodDeclarationLineNumber. Вот почему я предполагаю, что он правильно составлен. Проблема в том, что после развертывания никаких зависимостей не вводится.
My Spring applicationContext.xml включает в себя следующее:
<context:spring-configured />
<context:component-scan base-package="com.myapp" />
Является ли все, что необходимо для классов, отмеченных @Configurable, чтобы сделать DI? Во время преобразования от ткачества во время загрузки во время компиляции я удалил META-INF/aop.xml, < context: load-time-weaver/" > из моего applicationContext.xml и Spring Tomcat weaver из моего контекста .xml.
Как я могу исследовать эту проблему дальше? Каковы возможные причины?