Сообщить о том, что компонент условного аспекта всегда выполняетсяJAVA

Программисты JAVA общаются здесь
Anonymous
Сообщить о том, что компонент условного аспекта всегда выполняется

Сообщение Anonymous »

Я хочу условно создать аспект в зависимости от значения, считанного из файла свойств. (Это связано с профилированием, поэтому предполагается выборочное использование).
Я попытался создать класс, реализующий условие и, следовательно, метод match(), который позволил бы мне выполнить необходима проверка и установите для вывода соответствующее логическое значение, включив или отключив его.
@Aspect
@Component
@Conditional(AuthFilterCondition.class)
public class AuthTokenFilter {

@Before("@annotation(org.company.annotations.ValidateAuthToken)")
public void doBefore(JoinPoint joinPoint) {
System.out.println("Loading auth token filter");

}
}

AuthFilterCondition
public class AuthFilterCondition implements Condition {

private static final String IS_AUTH_FILTER_FEATURE_ENABLED = "org.company.load.auth.filter";

@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return (context.getEnvironment().getProperty(IS_AUTH_FILTER_FEATURE_ENABLED).equalsIgnoreCase("true"));
}
}


Контроллер
@Path("/v1")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public interface HealthService {

@GET
@Path("/check/health")
Response checkHealth();
}


ServiceImpl
public class HealthServiceImpl implements HealthService {

@ValidateAuthToken
@Override
public Response checkHealth() {
return Response.ok().build();
}
}


servercontext.xml


















Уже используется аспект с компонентом, который должен быть обнаружен во время сканирования компонента, и рекомендация, которую следует пропустить, если она не совпадает, но рекомендация все еще выполняется. Подскажите, пожалуйста, если я делаю что-то не так.
Здесь я передаю аргумент виртуальной машины во время выполнения, который имеет значение ниже, которое заставит работать AuthFilterCondition.
-Dorg.company.load.auth.filter=true


Подробнее здесь: https://stackoverflow.com/questions/790 ... -executing

Вернуться в «JAVA»