当前位置: 首页 > 知识库问答 >
问题:

如何以编程方式设置批注属性/属性?

周学义
2023-03-14

所以我需要为@Transactional注释设置timeout参数。这个属性将来自一个属性文件,我不能这样做,因为我遇到了“注释属性transactional.timeout的值必须是常量表达式”。像这样的东西

@Value("${mytimeout}")
private int myTimeout;

@Transactional(timeout=myTimeout)
public void myMethod(){
}

共有1个答案

衡翰藻
2023-03-14

>

  • 如果所有事务都需要相同的超时,可以在事务管理器中将其配置为DefaultTimeout

    否则,您可以尝试使用自定义AnnotationTransactionAttributeSourceTransactionAnnotationParser,尽管您需要用相应bean的手动定义替换 以配置自定义属性源。

    然后,您可以创建自定义注释,并在TransactionAnnotationParser看到注释时使用自定义超时生成TransactionDefinition

    否则,解决此问题的最简单方法是放弃使用@transaction而使用TransactionTemplate

  •  类似资料:
    • 问题内容: 假设我有一个python对象和一个字符串,如何将属性设置为?所以: 魔术是什么?顺便说一下,这样做的目的是将对的调用缓存。 问题答案: 寻求帮助: 编辑:但是,你应注意(如注释中所指出),你不能对的“纯”实例执行此操作。但是很可能你有一个简单的对象子类,可以很好地工作。我强烈敦促不要创建这样的对象实例。

    • 问题内容: 如何确保从hibernate.cfg.xml加载所有属性,然后以编程方式添加其他属性?我看到了以下代码片段,但它看起来像是全新的配置,而不是现有配置的补充。 问题答案: 您显示的代码段是您所需要的。只需使用您现有的配置,而不是创建一个新的配置即可。 如果不是您实例化配置(例如,spring),则需要扩展创建它的类。

    • 任何关于这个或者如何使用drools api修改drools规则的想法都将是有用的。 注意:我不想为修改规则做字符串替换。

    • 我有一个产品属性变化,有选项-小-20美元中等-25美元大-30美元 因为商店里的所有产品都有相同的价格。 如何以编程方式设置属性值的价格? 当我将3个属性变体按钮添加为变体时,它们会显示在产品页面上。 如何更改产品的价格时,"小"选项选择编程方式,而不是设置价格的变化选项在管理面板。

    • 我正在构建一个站点,其中以编程方式插入可变产品(带有产品变体)。我成功地学习了本教程: 插入WooCommerce产品 我需要的只是缺少的东西: 如何为可变产品设置默认属性值?可能吗?

    • 问题内容: 我想以编程方式将bean定义添加到应用程序上下文中,但是该定义的某些属性是该上下文中的其他bean(我知道它们的名称)。我该怎么做才能注入那些属性? 例如: 我正在使用Spring 3.0。 问题答案: 用途: