user3139545 :
나는 조건로드 빈에 다음과 같이 뭔가를하고 싶습니다
@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")