Wiosna @Transactional + AspectJ kompilacji Weaving nie działa

głosy
0

Mam kilka metod, które są oznaczone @Transactional adnotacji, a następnie robią self-inwokację, a niektóre z metod są prywatne, więc chcę używać AspectJ smak zarządzania transakcjami z wiosny.

Jestem kompilowanie mojego kodu z aspectj-maven-pluginwersji 1.11:

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.11</version>
                <configuration>
                    <proc>none</proc>
                    <forceAjcCompile>true</forceAjcCompile>
                    <complianceLevel>${java.version}</complianceLevel>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <showWeaveInfo>true</showWeaveInfo>


                    <aspectLibraries>
                        <aspectLibrary>
                            <groupId>org.springframework</groupId>
                            <artifactId>spring-aspects</artifactId>
                        </aspectLibrary>
                    </aspectLibraries>


                    <sources>
                        <source>
                            <basedir>${project.build.directory}/generated-sources/annotations</basedir>
                        </source>
                        <source>
                            <basedir>${project.build.directory}/generated-sources/delombok</basedir>
                        </source>
                    </sources>
                    <testSources>
                        <source>
                            <basedir>
                                ${project.build.directory}/generated-test-sources/delombok
                            </basedir>
                        </source>
                    </testSources>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Kompilacji część działa dobrze i widzę moje zajęcia są tkane w dziennikach i mogę też zobaczyć, że w plikach klas: kilka ...$AjcClosure...klas.

Ale potem, mój skrypt Maven jest wykonywanie testów integracyjnych (które są testy rozruchowe wiosna) używając maven surefirewtyczki i testów, które mają na celu sprawdzenie, czy transakcja jest rollbacked w przypadku wyjątek jest wyrzucane, zawodzą.

Tu jest mój @Configurationplik:

@Configuration
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)
public class MyAppConfig {

// some beans not related to persistence

}

Co ja tu brakuje?

Utwórz 10/10/2019 o 00:43
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Nie trzeba AspectJ Maven lub innego rodzaju narzędzia tkania kompilacji, aby to działało na wiosnę. Wystarczy użyć AspectJ poprzez LTW (obciążenie w czasie tkania) zamiast.

Odpowiedział 18/10/2019 o 10:09
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more