Посоветуйте, чтобы компонент условного аспекта всегда выполнялся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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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