[JAVA] Ändern Sie das Injektionsziel für jede Umgebung mit Spring Boot 2

Einführung

In Spring Boot injizieren Sie mit "@ Autowired", aber ich werde darüber schreiben, was zu tun ist, wenn es einen Fall gibt, in dem Sie das zu lesende Ziel für jede Umgebung ändern möchten.

Die Umgebung hier ist das Spring Boog-Startargument spring.profiles.active, und wenn dieses Startargument geändert wird, wird die zu lesende Klasse geändert.

Umgebung

Java10 Spring Boot2.0.4.RELEASE

Da es vor einiger Zeit erstellt wurde, ist die Umgebung alt, sollte aber mit Java 11 und Boot 2.1 funktionieren.

Schnittstelle vorbereiten

Bereiten Sie zunächst eine Schnittstelle vor (eine abstrakte Klasse ist ebenfalls möglich).

public interface TestInterface {
    void print();
}

Bereiten Sie die Entität der Schnittstelle vor

Da wir das zu lesende Ziel für jede Umgebung ändern möchten, generieren wir zwei Klassen, die die obige Schnittstelle implementieren.

Ändern Sie diese beiden Klassen mit Startargumenten. Angenommen, Sie geben test und test2` als Argumente an.

@Service
@Profile("test")
public class TestServiceA implements TestInterface {
    public void print() {
        System.out.println("test");
    }
}
@Service
@Profile("test2")
public class TestServiceB implements TestInterface {
    public void move() {
        System.out.println("test2");
    }
}

Fügen Sie einfach "@ Profile" hinzu. Wenn dies hinzugefügt wird und die Startargumente nicht übereinstimmen, wird es nicht in Bean konvertiert.

Implementierung auf der Benutzerseite

Dieses Mal werden wir diese Klasse von Controller verwenden.

@Controller
public class TestController {
    @Autowired
    private TestInterface testInterface;

    //Controller-Verarbeitung
}

Stellen Sie einfach die Zielklasse auf Schnittstelle ein. Da es im Profil nur ein Ziel gibt, das eine Bean ist, ändert sich das Ziel abhängig vom Startargument.

Recommended Posts

Ändern Sie das Injektionsziel für jede Umgebung mit Spring Boot 2
Ändern Sie den Einstellungswert für jede Umgebung mit Digdag (RubyOnRails).
Spring Boot zum ersten Mal
Verschiedene Switching Application.Eigenschaften für jede Umgebung, wenn Spring Boot gestartet wird
Geben Sie das Zeitlimit für jeden Pfad mit Rack :: Timeout an
Erstellen Sie mit Gradle Spring Boot-Projekte nach Umgebung
Erstellen Sie eine Spring Boot-Umgebung mit Windows + VS-Code
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Spring Boot Entwicklung-Entwicklungsumgebung-
Mit Spring Boot herunterladen
Einstellungen für die Verbindung zu MySQL mit Spring Boot + Spring JDBC
So stellen Sie Spring Boot Dependency Injection (DI) ein
Wechseln Sie die Umgebung mit Spring Boot application.properties und @ Profile-Annotation
Greifen Sie mit jdbcTemplate auf das integrierte h2db des Spring Boot zu
SSO mit GitHub OAuth in der Spring Boot 1.5.x-Umgebung
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Booten nach Umgebung mit Spring Boot of Maven
Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)
[Spring Boot] Umgebungskonstruktion (macOS)
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Ändern Sie den Port mit SpringBoot
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Versuchen Sie, die Springcode-Such-API mit Spring Boot aufzurufen
Spring Boot beginnend mit Docker
Ich möchte die maximale Dateigröße für das Hochladen von Dateien für jede URL in Spring Boot steuern
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Aufbau der Docker x Spring Boot-Umgebung
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
Build Spring für Android 2.0.0
[Android] Ändern Sie den App-Namen und das App-Symbol für jeden Geschmack
Erstellen Sie mit Spring Boot einen Mikrodienst
Mail mit Spring Boot verschicken
Spring Boot zum Lernen von Anmerkungen
[Java] Beispielprojekt zum Entwickeln von Webanwendungen mit Spring Boot
Beachten Sie, dass die Standardeinstellung für die Spring-Boot-Umleitung http ist
Siehe das relative Umleitungsverhalten mit der Einstellung server.tomcat.use-relative-redirects in Spring Boot
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
Sehen Sie sich das Verhalten von Entitätsaktualisierungen mit Spring Boot + Spring Data JPA an
Verwenden Sie die Standardauthentifizierung mit Spring Boot
◆ Konstruktionsnotiz für Spring Boot + Gradle-Umgebung
gRPC auf Spring Boot mit grpc-spring-boot-Starter
Umgebungsbau mit Docker für Anfänger
Erstellen Sie eine App mit Spring Boot 2
Hot Deploy mit Spring Boot-Entwicklung
Datenbankverknüpfung mit doma2 (Spring Boot)
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
Erstellen Sie eine Anfrage-App mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot