Я хочу условно создать аспект в зависимости от значения, считанного из файла свойств. (Это связано с профилированием, поэтому предполагается выборочное использование).
Я попытался создать класс, реализующий условие и, следовательно, метод 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
Программисты JAVA общаются здесь
-
Anonymous
1727174278
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79012139/advise-on-conditional-aspect-component-always-executing[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия