Bahar @Transactional + AspectJ'yi Derleme Zamanı Dokuma çalışmıyor

oy
0

Ben @Transactional açıklama ile işaretlenmiştir yöntemlerinin bir grup var ve sonra kendini çağırmayı yapmak ve yöntemlerden bazıları gizli olduğu için, ben Bahar ile işlem yönetimi AspectJ lezzet kullanmak istiyorum.

Ben ile benim kod derleme am aspectj-maven-pluginsürümü 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>

Derleme bölümü gayet iyi çalışıyor ve benim sınıfları günlüklerinde dokunmuş olma ve ayrıca sınıf dosyaları olduğunu görebilirsiniz bkz: bir demet ...$AjcClosure...sınıfları.

Ama sonra, en maven komut maven kullanarak (ilkbahar önyükleme testleridir) entegrasyon testleri yapmaktadır surefireeklentisi ve işlem başarısız oluyor, bir istisna atılan durumunda rollbacked olup olmadığını içindir testler doğrulamak için.

İşte benim olduğunu @Configurationdosyası:

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

// some beans not related to persistence

}

Burada eksik?

Oluştur 09/10/2019 saat 23:43
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

Sen baharda çalışması için sırayla AspectJ Maven veya derleme zamanı dokuma aracının başka türde gerekmez. Sadece kullanmak LTW (yük zamanı dokuma) üzerinden AspectJ yerine.

Cevap 18/10/2019 saat 09:09
kaynak kullanıcı

oy
0

yapılandırmak için CTW benim config fasulye aşağıdaki configure vardı:

    @Bean
    public PlatformTransactionManager txManager(DataSource dataSource) {
        DataSourceTransactionManager txManager = new DataSourceTransactionManager(dataSource);
        AnnotationTransactionAspect.aspectOf().setTransactionManager(txManager);
        return txManager;
    }

Ayrıca, benim maven dosya haline:

           <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.11</version>
                <configuration>
                    <proc>none</proc>
                    <Xlint>ignore</Xlint>
                    <forceAjcCompile>true</forceAjcCompile>
                    <complianceLevel>${java.version}</complianceLevel>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <showWeaveInfo>true</showWeaveInfo>
                    <sources/>
                    <testSources/>
                    <aspectLibraries>
                        <aspectLibrary>
                            <groupId>org.springframework</groupId>
                            <artifactId>spring-aspects</artifactId>
                        </aspectLibrary>
                    </aspectLibraries>
                </configuration>
                <executions>
                    <execution>
                        <id>compile-sources</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <weaveDirectories>
                                <weaveDirectory>${project.build.outputDirectory}</weaveDirectory>
                            </weaveDirectories>
                        </configuration>
                    </execution>
                    <execution>
                        <id>compile-test-sources</id>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                        <configuration>
                            <weaveDirectories>
                                <weaveDirectory>${project.build.testOutputDirectory}</weaveDirectory>
                            </weaveDirectories>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjtools</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjrt</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
Cevap 15/11/2019 saat 03:49
kaynak kullanıcı

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