Я совсем недавно добавил togglz в приложение Spring-Boot 3.1.9, которое также содержит много вещей, таких как Spring-Security, Spring-Data и т. д.
Зависимость Maven: р>
org.togglz
togglz-spring-boot-starter
4.4.0
Перечисление функций:
import org.togglz.core.Feature;
public enum ApplicationFeatures implements Feature {
MY_FEATURE
}
Конфигурация:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.togglz.core.manager.EnumBasedFeatureProvider;
import org.togglz.core.spi.FeatureProvider;
import org.togglz.core.user.NoOpUserProvider;
import org.togglz.core.user.UserProvider;
@Configuration
public class TogglesConfiguration {
@Bean
public FeatureProvider featureProvider() {
return new EnumBasedFeatureProvider(ApplicationFeatures.class);
}
@Bean
public UserProvider userProvider() {
return new NoOpUserProvider();
}
}
Application.yaml:
togglz:
features:
MY_FEATURE:
enabled: true
Простой сервис, использующий:
import de.telekom.wom.workorder.config.toggles.ApplicationFeatures;
import org.springframework.stereotype.Service;
@Service
public class MyService {
public String getA() {
if (ApplicationFeatures.MY_FEATURE.isActive())
return "OK";
else
return "INACTIVE";
}
}
Простой тест весенней загрузки:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest//(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class Testik {
@Autowired
MyService myService;
@Test
void name() {
myService.getA();
}
}
Проблема в том, что если я не запускаю реальную веб-среду и использую простой @SpringBootTest без (webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT), я получаю сообщение об ошибке:
java.lang.IllegalStateException: не удалось найти FeatureManager.
Для веб-приложений убедитесь, что запускается TogglzFilterправильно. В других сценариях развертывания вам обычно придется
реализовать FeatureManagerProvider, как описано в главе «Расширенная
конфигурация» документации.
Хотя если я создам образец проекта, он будет работать как положено. В чем может быть проблема? Почему развитие веб-среды может повлиять на Togglz?
Журналы успеха:
DEBUG [ FeatureContext.findFeatureManagerInClassLoader()] Поставщик
org.togglz.core.context.BeanFinderFeatureManagerProvider Возвращенный
FeatureManager
Журналы по ошибке:< /p>
ОТЛАДКА [FeatureContext.findFeatureManagerInClassLoader()]
Нет FeatureManager, предоставленного
org.togglz.core.context.BeanFinderFeatureManagerProvider
ОБНОВЛЕНИЕ:
Я только что понял, что если я удалю зависимость привода из файла pom.xml, то все будет работать так, как есть. должен. Есть идеи, почему?
org.springframework.boot
spring-boot-starter-actuator
Подробнее здесь: https://stackoverflow.com/questions/787 ... ith-togglz
SpringBootTest с Togglz ⇐ JAVA
Программисты JAVA общаются здесь
1722701531
Anonymous
Я совсем недавно добавил togglz в приложение Spring-Boot 3.1.9, которое также содержит много вещей, таких как Spring-Security, Spring-Data и т. д.
Зависимость Maven: р>
org.togglz
togglz-spring-boot-starter
4.4.0
Перечисление функций:
import org.togglz.core.Feature;
public enum ApplicationFeatures implements Feature {
MY_FEATURE
}
Конфигурация:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.togglz.core.manager.EnumBasedFeatureProvider;
import org.togglz.core.spi.FeatureProvider;
import org.togglz.core.user.NoOpUserProvider;
import org.togglz.core.user.UserProvider;
@Configuration
public class TogglesConfiguration {
@Bean
public FeatureProvider featureProvider() {
return new EnumBasedFeatureProvider(ApplicationFeatures.class);
}
@Bean
public UserProvider userProvider() {
return new NoOpUserProvider();
}
}
Application.yaml:
togglz:
features:
MY_FEATURE:
enabled: true
Простой сервис, использующий:
import de.telekom.wom.workorder.config.toggles.ApplicationFeatures;
import org.springframework.stereotype.Service;
@Service
public class MyService {
public String getA() {
if (ApplicationFeatures.MY_FEATURE.isActive())
return "OK";
else
return "INACTIVE";
}
}
Простой тест весенней загрузки:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest//(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class Testik {
@Autowired
MyService myService;
@Test
void name() {
myService.getA();
}
}
Проблема в том, что если я не запускаю реальную веб-среду и использую простой @SpringBootTest без (webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT), я получаю сообщение об ошибке:
java.lang.IllegalStateException: не удалось найти FeatureManager.
Для веб-приложений убедитесь, что запускается TogglzFilterправильно. В других сценариях развертывания вам обычно придется
реализовать FeatureManagerProvider, как описано в главе «Расширенная
конфигурация» документации.
Хотя если я создам образец проекта, он будет работать как положено. [b]В чем может быть проблема? Почему развитие веб-среды может повлиять на Togglz?[/b]
Журналы успеха:
DEBUG [ FeatureContext.findFeatureManagerInClassLoader()] Поставщик
org.togglz.core.context.BeanFinderFeatureManagerProvider Возвращенный
FeatureManager
Журналы по ошибке:< /p>
ОТЛАДКА [FeatureContext.findFeatureManagerInClassLoader()]
Нет FeatureManager, предоставленного
org.togglz.core.context.BeanFinderFeatureManagerProvider
[b]ОБНОВЛЕНИЕ[/b]:
Я только что понял, что если я удалю зависимость привода из файла pom.xml, то все будет работать так, как есть. должен. Есть идеи, почему?
org.springframework.boot
spring-boot-starter-actuator
Подробнее здесь: [url]https://stackoverflow.com/questions/78770351/springboottest-with-togglz[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия