사용자 정의 Conditons에 매개 변수 전달

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")

추천

출처http://43.154.161.224:23101/article/api/json?id=236408&siteId=1