2017-12-28 5 views
1

Ich versuche, einen anderen Spring Boot-Dienst von bestehenden Anwendung auszuführen, in Reihenfolge und verwenden Sie die gleiche Datenbank-Ebene. Die beiden App sollten unterschiedliche Dienste mit verschiedenen Ports sein.Starten von SpringBootApplication im Frühling Projekt für Micro-Service

Meine Projektstruktur ist dies:

- com.name (Project A) 
| - Application 
| - com.name.controller 
- com.name.controller2 (New) (Project B) 
| - Application2 (New) 
| - com.name.controller2.controller (New RestController) 
| 
- com.name.storage (Project C) 
| 
| 
- com.name.service 

Für Anwendung: (Es beginnend mit allen Controllern Endpunkte)

@SpringBootConfiguration 
public class Application { 
    SpringApplication.run(Application.class, args); 
} 

Für Application2 Ich habe tryied dass ohne Glück:

//@SpringBootApplication(
//  scanBasePackages={"com.name"}) 
@SpringBootConfiguration 
@ComponentScan(basePackages = {"com.name"}) 
public class Application2{ 
    SpringApplication.run(Application2.class, args); 
} 

Ich habe viele Variationen ausprobiert, aber ich konnte es nicht richtig machen. Wenn ich "com.name.storage" als basePackages verwende, startet die App mit keiner Konfiguration (die restlichen Endpunkte des Controllers werden nicht erkannt), sondern hört den neuen Port ab.

Können Sie mir bei der richtigen Konfiguration helfen?

Antwort

0

Probieren Sie etwas wie dieses

SpringApplicationBuilder uws = new SpringApplicationBuilder(UserWebApplication.class) 
     .properties("server.port=8081", 
        "server.contextPath=/UserService"); 
uws.run(); 
SpringApplicationBuilder pws = new SpringApplicationBuilder(ProjectWebApplication.class) 
     .properties("server.port=8082", 
        "server.contextPath=/ProjectService"); 
pws.run(); 
+0

Ich bin nicht sicher, ich verstanden, warum nicht SpringApplication.run (Application2.class, args) zu benutzen? – Jonny

+0

Sie können definitiv Ihre eine Anwendung verwenden. Ich habe ein Code-Snippet von meinem Projekt – StanislavL

+0

veröffentlicht Ich denke, ich war nicht klar mit dem Problem. Die Apps sind separate Projekte. Dieser Link beschreibt das Problem und die Lösung: http://www.springboottutorial.com/spring-boot-and-component-scan Aber aus irgendeinem Grund werden Projekt C-Komponenten nicht für die Autowire-Felder von Projekt B. gefunden Ich habe das Projekt A-Paket in com.name.controller1 geändert, damit es nicht in derselben Paketstruktur wie Projekt C ist und das gleiche Problem hat. Bohnen von Projekt C konnten für Projekt A nicht gefunden werden – Jonny

Verwandte Themen