Spring事务管理-AspectJ-编译时加载-示例

时间:2018-12-06 23:04:46

标签: spring-boot aspectj

我想使用Aspectj模式在Spring Boot 2应用程序中实现事务管理。我想进行编译时加载。

有人可以提供示例代码吗?

1 个答案:

答案 0 :(得分:0)

使用aspectj的事务管理是通过在编译时或加载时编织事务语义来完成的。 下面的示例在编译时完成。下面没有提到版本,因为Spring Boot已经可以管理它了。

如下注释您的持久性配置。我们需要将交易模式设置为方面

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

Maven配置

<dependencies>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
    </dependency>
</dependencies>

<build>    
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.11</version>
            <configuration>
                <sources>
                    <source>
                        <basedir>${project.basedir}</basedir>
                        <includes>
                            <include>**/*.java</include>
                        </includes>
                    </source>
                </sources>      
                <aspectLibraries>
                    <aspectLibrary>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aspects</artifactId>
                    </aspectLibrary>
                </aspectLibraries>
                <source>1.8</source>
                <showWeaveInfo>true</showWeaveInfo>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugin>
</build>