java - Spring @Conditional 基于数据库表中的值

标签 java spring-boot spring-4

条件评估取决于数据库表中提供的值

@Component
public class XYZCondition implements Condition{

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
              //based on value defined in DB should return true/false
    }

}

由于条件执行得很早,无法获取数据库值 有没有其他方法可以实现这一目标?

最佳答案

数据库值可以在应用程序工作期间更改,但重新加载应用程序上下文似乎不是一个好主意。 因此,我建议使用配置属性来选择哪些 bean 在上下文中可用。

此外,还有一个 Spring Cloud Config 允许您将配置存储在 git 或其他存储中。一旦配置发生变化,它的消费者可能会重新启动上下文。 似乎也值得讨论一下。

关于java - Spring @Conditional 基于数据库表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61537318/

相关文章:

java - 使用 Spring Boot 的 Spring 批处理 : Read arguments from config or command line and use them in job

java - Spring:为什么使用@Service类而不是Singleton对象?

java - 如何在我的 Spring Boot 应用程序中使用配置文件 (properties/yml) 中的属性?

javascript - localhost 不工作的简单 angularJS GET 函数

java.lang.NullPointerException,当我在托管 bean 的构造函数内调用其他 bean 的方法时

java - 如何以编程方式设置 Spring Boot 的日志记录级别?

java - 一对多的映射关系和新添加的列

java - 使用 Spring Security + CAS 获取循环重定向,但应该可以工作

java - 不正确的字符串加密/解密

java - 如何通过cmd运行简单的jdbc连接程序