gpt4 book ai didi

java - 将参数传递给自定义条件

转载 作者:行者123 更新时间:2023-12-04 02:47:44 27 4
gpt4 key购买 nike

我想做如下的事情来有条件地加载一个 bean:

@Conditional(OnAuthoritieCondition.class, "SOME_INPUT_STRING")

然而,当我尝试实现它时,我得到以下信息:

public class OnAuthoritieCondition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
return false;
}
}

现在我的问题是我如何实现一个带参数的自定义条件,或者是否有更好的方法来做我想做的事情?

最佳答案

创建您的自定义注释

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.context.annotation.Conditional;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Conditional(value = CustomCondition.class)
public @interface ConditionalController {

String condition();

}

您的自定义条件

public class CustomCondition implements Condition {

@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
Map<String, Object> attributes = metadata.getAnnotationAttributes(ConditionalController.class.getName());
String condition = (String) attributes.get("condition");
return "GO".equalsIgnoreCase(condition);
}

}

像这样使用它

@ConditionalController(condition = "GO")

关于java - 将参数传递给自定义条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56669125/

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