Как установить springframework @Transactional с AspectJ

Я хочу использовать spring-aspects для создания моих методов транзакционными, но не используя Spring AOP (Spring AOP работает просто великолепно с: ). Я использую Знатока для управления моим проектом.

Есть ли способ сделать время компиляции, переплетаясь на моих классах проекта так, "они Transactional". Я пытался использовать Плагин Знатока AspectJ Mojo, но без любых хороших результатов.

Помогите.

6
задан Sergey Brunov 6 November 2017 в 12:10
поделиться

1 ответ

Я разобрался. Плагин Maven работает нормально, но проблема была в моей конфигурации Spring: У меня было:

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

Мне было нужно:

<bean id="transactionManager"   class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean class="org.springframework.transaction.aspectj.AnnotationTransactionAspect" factory-method="aspectOf">
    <property name="transactionManager" ref="transactionManager"/>
</bean>

Теперь он работает нормально. И производительность моих методов @Transactional улучшилась, и это то, для чего я собирался.

Вот моя конфигурация плагина maven aspectj:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.3</version>
    <configuration>
        <aspectLibraries>
            <aspectLibrary>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </aspectLibrary>
       </aspectLibraries>
        <source>1.5</source>
        <showWeaveInfo>true</showWeaveInfo>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

надеюсь, это кому-то поможет.

4
ответ дан 10 December 2019 в 02:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: