java 如何在Annotation属性中传递变量[重复]

fdbelqdn  于 2023-02-28  发布在  Java
关注(0)|答案(1)|浏览(141)

此问题在此处已有答案

How to parameterize @Scheduled(fixedDelay) with Spring 3.0 expression language?(5个答案)
3天前关闭。
如何传递注解属性。我想添加我的变量字符串(ans)在Cron注解,但我得到异常,你能告诉我我怎么做吗?
我想从数据库中获取玉米图案,并将其存储到正在创建问题的ans变量中。

@Service
public class CronService {
    
    @Autowired
    UserDao userdao;
    
    String ans="* * * * * *";
    
    @Scheduled(cron="{ans}")
    public void add() {
        System.out.println("Hello");
    }

}
w8ntj3qf

w8ntj3qf1#

注解值必须在编译时已知,也就是说你不能动态地设置它们,但是在Spring中你可以使用EL表达式来绕过这个问题,所以注解值将来自配置,例如,请参见第8章:https://www.baeldung.com/spring-scheduled-tasks
在这种特殊情况下,您可以使用

@Scheduled(cron="${my.cron.expression}")

那么您应该在XML中设置属性值。

相关问题