Ich starte einen Spring Boot Rest Service, der je nach Distribution verschiedene Pakete laden kann. Dies bedeutet manchmal, dass die Distribution einige Gläser enthält, in denen bestimmte REST-Controller sind, manchmal sind diese Controller nicht da.Wie man den Import/Laden des Restcontrollers programmatisch erzwingt
So wie ich Spring-Boot sagen kann, wo die Controller mit einer Konfigurationsdatei zu finden. Jetzt sende ich diese Information durch Anmerkungen, die mich zwingen, eine "Hauptleitung" pro Verteilung zu erstellen. Ich möchte einen eindeutigen main definieren, der die in einer Datei definierten Controller importiert. Mit anderen Worten möchte ich manuell die @Import
Annotation zuzugreifen, als unten im sniped dargestellt:
@Configuration
@PropertySource("conf.cfg")
@Import(value = {RestContorller1.class, RestContorller2.class})
@EnableAutoConfiguration
@ConfigurationProperties
@SpringBootApplication
@RestController
@EnableSwagger2
public class Application {
public static void main(String[] args) {
String confFile = Const.DEFAULT_CONFIGURATION_FILE;
if(args.length>0)
confFile= args[0];
System.setProperty("spring.config.name",confFile);
Boolean hasStarted = DataProcessingCore.start(confFile);
if(hasStarted) {
SpringApplication springApp = new SpringApplication(Application.class);
try {
springApp.setDefaultProperties(Utils.createPropertyFiles(confFile));
} catch (IOException e) {
e.printStackTrace();
}
springApp.addInitializers();
springApp.run(args);
}
}
}