https://github.com/romanow/feature-flags
Feature Flags implementation for Java and Spring Boot
https://github.com/romanow/feature-flags
feature-flags spring-boot
Last synced: 3 months ago
JSON representation
Feature Flags implementation for Java and Spring Boot
- Host: GitHub
- URL: https://github.com/romanow/feature-flags
- Owner: Romanow
- License: apache-2.0
- Created: 2024-11-20T10:58:24.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-06-10T11:46:54.000Z (about 1 year ago)
- Last Synced: 2025-06-10T12:39:17.788Z (about 1 year ago)
- Topics: feature-flags, spring-boot
- Language: Kotlin
- Homepage: https://romanow.github.io/feature-flags/
- Size: 83 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/Romanow/feature-flags/actions/workflows/build.yml)
[](https://github.com/pre-commit/pre-commit)
[](https://github.com/Romanow/feature-flags/releases/latest)
[](https://codecov.io/gh/Romanow/feature-flags)
[](https://github.com/Romanow/feature-flags/blob/master/LICENSE)
# Feature Flags
## Подключение
### Maven
```xml
ru.romanow
feature-flags
${feature-flags.version}
```
### Gradle
```groovy
testImplementation "ru.romanow:feature-flags:$featureFlagsVersion"
```
## Реализация
Классы, которые необходимо перезагружать при обновлении флагов:
* Класс `Features` (`@ConfigurationProperties(prefix = "features")`) и beans, куда он autowired.
* Beans, помеченные аннотациями `@ConditionOnFeatureEnabled`, `ConditionOnFeatureDisabled` и
`@DefaultFeatureImplementation`.
* Классы, где есть `@Value("${features.*})`.
Способы получения обновленного конфига:
* Файл на host-машине:
* classpath (by default) – не контролируется;
* `/opt/features.yml` (контролируется переменной `features.config.location`).
* Запросом к config-серверу.