java - Spring Boot @EnableTransactionManagement(mode = AdviceMode.ASPECTJ) 不起作用

标签 java spring spring-boot aspectj transactional

当我尝试使用时:

@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)

交易不起作用,但如果我使用

@EnableTransactionManagement(mode = AdviceMode.PROXY)

一切正常。

我的代码:

SpringBoot应用

@SpringBootApplication
@EnableScheduling
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)
@EnableLoadTimeWeaving(aspectjWeaving = EnableLoadTimeWeaving.AspectJWeaving.ENABLED)
public class SpringBootAplication
{
    private static ConfigurableApplicationContext applicationContext;


    public static void main(String[] args)
    {              System.out.println(InstrumentationLoadTimeWeaver.isInstrumentationAvailable());
        applicationContext = SpringApplication.run(SpringBootAplication.class, args);
    }

Controller

@RestController
public class MyController
{
    @Autowired
    MyRepository repository;

    @Transactional
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public void test()
    {
        repository.findById("name");
        System.out.println(TransactionAspectSupport.currentTransactionStatus());
    }
}

我还有一个 VM 选项:-javaagent:"spring-instrument-5.1.2.RELEASE.jar"for ASPECTJ。

这是我在尝试获取当前交易时接受的异常。

org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope

也是我的依靠

implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('org.springframework.boot:spring-boot-starter-thymeleaf')
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation("org.springframework.boot:spring-boot-starter-websocket")
implementation('org.springframework.boot:spring-boot-starter-security')
implementation("org.springframework.boot:spring-boot-devtools")

最佳答案

添加 aspectjweaver.jar 代理,如下所示:-javaagent:/path/to/aspectjweaver.jar 应该可以解决您的问题。

关于java - Spring Boot @EnableTransactionManagement(mode = AdviceMode.ASPECTJ) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53931934/

相关文章:

java - 如何将 mongo 中的 Criteria 与 TextCriteria 与 spring java 驱动程序结合起来?

java - Spring boot 和 GCP - 使用 spring-cloud-gcp-starter-sql-postgresql 连接 Cloud SQL 实例尝试 SSL,但启动延迟

java - 将 JTextFields 行添加到 JScrollPane

java - 可执行 JAR 文件还包含源代码

java - 识别由于网络问题导致的 SQLException

java - 将外键类型从 java.net.URI 更改为数字 - POST 方法

java - @ServiceActivator如何在Spring Boot中从属性文件读取inputChannel?

java - p :commandButton in p:dialog does not call actionListener method

java - 有没有办法配置 Jersey 客户端请求日志记录的级别?

java - 带注释的 Spring + Hibernate : No Hibernate Session bound to thread