Ich habe eine Spring Boot Web-Anwendung, die Restdienste ausstellt.Ist @Profile von Spring auf Methoden eine gute Praxis?
Ich frage mich, wie man Profile auf Filtern richtig verwaltet. Eigentlich hat meine App 2 Profile: Dev und Prod (Sie raten, was es für ... steht)
Im prod-Modus habe ich mehr Filter aktivieren als im Dev-Modus.
Meine Filter Konfigurationsklasse ist die folgende:
@Configuration
public class FiltersConfig {
@Bean
public FilterRegistrationBean filterRegistrationBean(CompositeFilter compositeFilter){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.setFilter(compositeFilter);
return filterRegistrationBean;
}
@Bean
@Profile("dev")
public CompositeFilter devCompositeFilter(){
CompositeFilter compositeFilter = new CompositeFilter();
List<Filter> filtersList = new ArrayList<>();
//filtersList.add(filter1());
compositeFilter.setFilters(filtersList);
return compositeFilter;
}
@Bean
@Profile("prod")
public CompositeFilter prodCompositeFilter(){
CompositeFilter compositeFilter = new CompositeFilter();
List<Filter> filtersList = new ArrayList<>();
//filtersList.add(filter1());
compositeFilter.setFilters(filtersList);
return compositeFilter;
}
}
Meine Fragen sind:
- Ist es eine gute Praxis @Profile auf Methode hinzufügen?
- Gibt es eine Möglichkeit, den Compiler zum Ausschließen von Klassen, Methoden usw. zu zwingen, die mit einem anderen Profil als dem als aktuell angegebenen versehen sind? (Ich möchte nicht, dass mein Produktions-Jar/Krieg mit unnötigem Code gefüllt wird!)
- Bietet Spring-Boot eine klarere Möglichkeit, Profile zu organisieren?
thx.
Keine bessere Antwort gefunden noch ... –