gpt4 book ai didi

Spring @Transactional value param with SpEL(Spring 表达式语言)

转载 作者:行者123 更新时间:2023-12-04 04:38:53 24 4
gpt4 key购买 nike

在我的一个服务类中,我注释了一些方法:

@Transactional(value="foodb")
public Bar getMeSomething(){
}

我最近了解了 @Value 与 Spring EL 的强大功能,可以将一些值存储在属性文件中。
比如
@Value("${my.db.name}")

这就像一个魅力。

现在我正在尝试做同样的事情
@Transactional(value="${my.db.name}") 

没有成功...

我收到以下异常:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '${my.db.name}' is defined: No matching PlatformTransactionManager bean found for qualifier '${my.db.name}' - neither qualifier match nor bean name match!

我正在尝试做的事情甚至得到 Spring 的支持吗?

我该怎么做才能在 @Transactional 注释中获取 my.db.name 值

谢谢

最佳答案

不,它不受支持。

这是 org.springframework.transaction.annotation.SpringTransactionAnnotationParser 的摘录

public TransactionAttribute parseTransactionAnnotation(Transactional ann) {
RuleBasedTransactionAttribute rbta = new RuleBasedTransactionAttribute();
rbta.setPropagationBehavior(ann.propagation().value());
rbta.setIsolationLevel(ann.isolation().value());
rbta.setTimeout(ann.timeout());
rbta.setReadOnly(ann.readOnly());
rbta.setQualifier(ann.value()); // <<--- this is where the magic would be
// if it was there, but it isn't

关于Spring @Transactional value param with SpEL(Spring 表达式语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19222092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com