Я пытаюсь найти способ использовать библиотеку Immutables для создания классов данных для хранения конфигурации моего приложения Spring Boot.
Мой класс конфигурации данных:
@Value.Immutable
@JsonDeserialize(as = ImmutableAuthConfig.class)
public interface AuthConfig {
String domain();
String clientId();
@Value.Redacted
String clientSecret();
}
В то время как основной класс конфигурации настроен как
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties
public class Config {
private ImmutableAuthConfig auth;
public AuthConfig getAuth() {
return auth;
}
public void setAuth(ImmutableAuthConfig auth) {
this.auth = auth;
}
}
Я пробовал несколько вариантов использования ImmutableAuthConfig
или просто AuthConfig
в качестве поля, но ничто не улучшило ситуацию. Конфигурация не была выбрана, и поле auth
конфигурации остается null
после запуска приложения.
Замена содержимого класса AuthConfig
традиционным POJO решает проблему, но я бы предпочел неизменный объект. Есть ли способ убедить Spring взаимодействовать с классами, сгенерированными библиотекой Immutables?