Jarní @Transactional + AspectJ kompilaci Weaving nefunguje

hlasů
0

Mám spoustu metod, které jsou označeny @Transactional anotaci a pak dělají vlastní vzývání a některé metody jsou soukromé, takže chci použít AspectJ chuť řízení transakcí s pružinou.

Jsem sestavování můj kód s aspectj-maven-pluginverzí 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>

Kompilace část funguje a vidím mé třídy jsou tkané v protokolech a mohu také vidět, že v souborech třídy: spoustu ...$AjcClosure...tříd.

Ale pak, můj odborník skript provádění integrační testy (které jsou zaváděcí testy pružina) pomocí Maven surefireplugin a zkoušky, které jsou určeny k ověření, zda transakce je rollbacked v případě, že výjimka je hozen, selhávají.

Tady je můj @Configurationsoubor:

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

// some beans not related to persistence

}

Co jsem zde chybí?

Položena 10/10/2019 v 00:43
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Nepotřebujete AspectJ Maven, nebo jakýkoli jiný typ kompilace-time nástroj pro tkaní, aby to fungovalo na jaře. Stačí použít AspectJ přes LTW (load-time tkaní) namísto.

Odpovězeno 18/10/2019 v 10:09
zdroj uživatelem

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