2017-02-10 5 views
0

Ich habe spring-boot-starter-data-rest und spring-boot-starter-data-hateoas zu den Abhängigkeiten meines Projekts hinzugefügt. Allerdings möchte ich die Rest-API auf dem produktiven Rechner noch nicht aussetzen. Ich suche nach einer Möglichkeit, den Rest-Endpunkt nur für ein bestimmtes Profil zu aktivieren. Ich habe bereits @SpringBootApplication (exclude = {RepositoryRestMvcAutoConfiguration.class}) und hat eine KonfigurationSpring Data Rest: Aktivieren nur bei bestimmten Profil

@Profile({"dev"})              
@Configuration               
@Import({RepositoryRestMvcAutoConfiguration.class,      
PagedResourcesAssembler.class})           
public class DevConfiguration extends RepositoryRestMvcConfiguration { 
... 

Aber diese verbleit hinzugefügt nirgends so konnte ich nicht alle Klassen importieren als vermisst gemeldet. Ich würde gerne zwei Artefakte vermeiden

Antwort

0
zu produzieren

Sie können Spring Data REST so konfigurieren, dass nur Repositories zu berücksichtigen, die mit @RepositoryRestResource oder @RestResource kommentiert werden und nicht über die exportierte Flag nicht auf false gesetzt. Sie können dies auf Ihr Produktionsprofil hinzufügen, damit es sie nicht aussetzen:

@Profile("prod") 
@Configuration 
public class RepositoryRestConfig extends RepositoryRestConfigurerAdapter { 
    @Override 
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
     config.setRepositoryDetectionStrategy(RepositoryDetectionStrategy.RepositoryDetectionStrategies.ANNOTATED); 
    } 
} 

Ich glaube, es wurde in 2.5.0.RELEASE

+0

Die doppelte Verneinung des '' RepositoryDetectionStrategy' ANNOTATED' hergestellt von Kopf drehen hinzugefügt. Was ich am Ende getan habe: Ich habe alle Repositorys mit '@RepositoryRestResource (exportierte = false) annotiert und eine Bean basierend auf Ihrer erstellt, aber mit' @Profile ("dev") kommentiert. ' In der überschriebenen Methode habe ich gesetzt die Erkennungsstrategie zu 'RepositoryDetectionStrategy.RepositoryDetectionStrategies.ALL' Das bedeutet: Standardmäßig sind alle Repos deaktiviert. Mit dem Profil "dev" kann ich sie aktivieren. Ich werde dich akzeptieren antworten, da es mich auf den richtigen Weg führt! Danke! – CyclingSir

+0

Toll könnte ich in irgendeiner Weise helfen :) Meine Lösung würde nicht erfordern, dass Sie Ihre Repositories mit Anmerkungen versehen, es wäre die am wenigsten aufdringliche Art, aber beide erreichen das gleiche Ergebnis. – nanodgb

Verwandte Themen