Dieses Repo ist vom Spring-Team zugelassen und ist eine Gabel von den Spring-Projects/Spring-Petclinic. Es ermöglicht der Spring Community, eine Petclinic-Version mit einer einfachen alten Spring Framework-Konfiguration und mit einer 3-Schicht-Architektur (dh Präsentation-> Service-> Repository) zu verwalten. Die "kanonische" Implementierung basiert jetzt auf Spring Boot, Thymeleaf und aggregatorientiertem Bereich.
Siehe die Präsentation hier (Update 2017)
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
cd spring-framework-petclinic
./mvnw jetty:run-war
# For Windows : ./mvnw.cmd jetty:run-war
docker run -p 8080:8080 springcommunity/spring-framework-petclinic
Anschließend können Sie hier auf Petclinic zugreifen: http: // localhost: 8080/
Unser Ausgabe-Tracker ist hier verfügbar
In seiner Standardkonfiguration verwendet PetClinic eine In-Memory-Datenbank (H2), die beim Start mit Daten besiedelt wird.
Ein ähnliches Setups wird für MySQL und PostgreSQL bereitgestellt, falls eine persistente Datenbankkonfiguration erforderlich ist. Um Petclinic lokal mithilfe der persistenten Datenbank auszuführen, ist es erforderlich, um mit Profil in der Hauptdatei pom.xml definiert zu werden.
Für die MySQL -Datenbank ist es erforderlich, um mit dem in der Hauptpom.xml -Datei definierten "MySQL" -Profil auszuführen.
./mvnw jetty:run-war -P MySQL
Bevor dies dies tun, ist es gut, Eigenschaften zu überprüfen, die in MySQL -Profil in der Datei pom.xml definiert sind.
<properties>
<jpa.database>MYSQL</jpa.database>
<jdbc.driverClassName>com.mysql.cj.jdbc.Driver</jdbc.driverClassName>
<jdbc.url>jdbc:mysql://localhost:3306/petclinic?useUnicode=true</jdbc.url>
<jdbc.username>petclinic</jdbc.username>
<jdbc.password>petclinic</jdbc.password>
</properties>
Sie können MySQL lokal mit dem Installateur für Ihr Betriebssystem oder mit Docker starten:
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:5.7.8
Für die PostgreSQL -Datenbank ist es erforderlich, um mit dem in der Hauptpom.xml -Datei definierten PostgreSQL -Profil auszuführen.
./mvnw jetty:run-war -P PostgreSQL
Bevor dies dies tun, ist es gut, Eigenschaften zu überprüfen, die in PostgreSQL -Profil in der Datei pom.xml definiert sind.
<properties>
<jpa.database>POSTGRESQL</jpa.database>
<jdbc.driverClassName>org.postgresql.Driver</jdbc.driverClassName>
<jdbc.url>jdbc:postgresql://localhost:5432/petclinic</jdbc.url>
<jdbc.username>postgres</jdbc.username>
<jdbc.password>petclinic</jdbc.password>
</properties>
Sie können Postgresql auch mit dem für Ihr Betriebssystem bearbeitenden Installateur oder mit Docker vor Ort starten:
docker run --name postgres-petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 -d postgres:9.6.0
Die Persistenzschicht verfügt über 3 verfügbare Implementierungen: JPA (Standard), JDBC und Spring Data JPA. Die Standard-JPA-Implementierung könnte mithilfe eines Federprofils geändert werden: jdbc , spring-data-jpa und jpa .
Beispielsweise können Sie die Optionen für -Dspring.profiles.active=jdbc VM verwenden, um die Anwendung mit der JDBC -Implementierung zu starten.
./mvnw jetty:run-war -Dspring.profiles.active=jdbc
Es gibt einen petclinic.css in src/main/webapp/resources/resources/css . Es wurde aus der Quelle von petclinic.scss erzeugt, kombiniert mit der Bootstrap -Bibliothek. Wenn Sie Änderungen am scss vornehmen oder Bootstrap aktualisieren, müssen Sie die CSS-Ressourcen mit dem Maven-Profil "CSS", dh ./mvnw generate-resources -P css erneut kompilieren.
Die folgenden Elemente sollten in Ihrem System installiert werden:
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
File -> Import -> Maven -> Existing Maven project
Erstellen Sie dann entweder auf der Befehlszeile ./mvnw generate-resources oder verwenden Sie den Eclipse -Launcher (mit der rechten Maustaste auf das Projekt klicken und Run As -> Maven install ), um die CSS zu generieren. Konfigurieren Sie einen Steg oder einen Tomcat-Webcontainer und stellen Sie dann die Datei spring-petclinic.war Datei bereit.
Wählen Sie im Hauptmenü File > Open und wählen Sie den Petclinic pom.xml. Klicken Sie auf die Schaltfläche Open .
CSS -Dateien werden aus dem Maven -Build generiert. spring-petclinic Maven -> Generates sources and Update Folders sie entweder in der Befehlszeile erstellen ./mvnw generate-resources
Gehen Sie zum Run -> Edit Configuration konfigurieren Sie dann einen Tomcat oder einen Steg -Webcontainer. Stellen Sie die Datei spring-petclinic.war Datei ein. Führen Sie die Anwendung aus, indem Sie auf das Run klicken.
Besuchen Sie http: // localhost: 8080 in Ihrem Browser.
Die folgenden Elemente sollten in Ihrem System installiert werden:
| Java -Konfiguration | |
|---|---|
| Java -Konfigurationszweig | PetClinic verwendet standardmäßig die XML -Konfiguration. Falls Sie stattdessen eine Java -Konfiguration verwenden möchten, gibt es hier eine Java -Konfigurationsabteilung |
| In der "Web" -Schicht | Dateien |
|---|---|
| Spring MVC - XML -Integration | mvc-view-config.xml |
| Spring MVC - ContentNegotiAtingViewResolver | mvc-view-config.xml |
| JSP benutzerdefinierte Tags | Web-inf/Tags, createorUpdateOwnerform.jsp |
| JavaScript -Abhängigkeiten | JavaScript -Bibliotheken werden als Webjars im pom.xml deklariert |
| Statische Ressourcenkonfiguration | Ressourcenzuordnung in der Federkonfiguration |
| Statische Ressourcenverbrauch | htmlHeader.tag, footer.tag |
| Thymeleaf | Ende 2016 hat sich der ursprüngliche Spring Petclinic von JSP nach Thymeleaf übergegangen. |
| "Service" und "Repository" -Schichten | Dateien |
|---|---|
| Transaktionen | Business-Config.xml, ClinicsserviceImpl.java |
| Cache | Tools-config.xml, ClinicsserviceImpl.java |
| Bohnenprofile | Business-config.xml, Clinicsservicejdbctests.java, Petclinicinitializer.java |
| JDBC | Business-config.xml, JDBC-Ordner |
| JPA | Business-config.xml, JPA-Ordner |
| Federdaten JPA | Business-config.xml, Springdatajpa-Ordner |
Diese Anwendung verwendet Google Jib, um ein optimiertes Docker -Bild in das Docker Hub -Repository zu erstellen. Die pom.xml wurde so konfiguriert, dass das Bild mit einem The springcommunity/spring-framework-petclinic Bildnamen veröffentlicht wird.
JIB Container dieses Kriegsprojekts, indem sie den entscheidenden Steg als Basisbild verwenden.
Erstellen und schieben Sie das Containerbild von Petclinic in die Registrierung von Docker Hub:
mvn jib:build
Der Spring Petclinic Master-Zweig in der Haupt-Spring-Projects Github Org ist die "kanonische" Implementierung, die derzeit auf Spring Boot und Thymeleaf basiert.
In diesem Frühjahrs-Framework-Petclinic-Projekt ist eine der verschiedenen Gabeln, die in einer speziellen Github-Org: Spring-Petclinic veranstaltet werden. Wenn Sie ein besonderes Interesse an einem anderen Technologiestapel haben, der zur Implementierung der PET -Klinik verwendet werden könnte, treten Sie dort bitte der Community bei.
Einer der besten Teile an der Arbeit an der Spring Petclinic -Anwendung ist, dass wir die Möglichkeit haben, in direktem Kontakt mit vielen Open -Source -Projekten zu arbeiten. Wir fanden einige Fehler/vorgeschlagene Verbesserungen zu verschiedenen Themen wie Frühling, Federdaten, Bean -Validierung und sogar Sonnenfinsternis! In vielen Fällen wurden sie in nur wenigen Tagen behoben/implementiert. Hier ist eine Liste von ihnen:
| Name | Ausgabe |
|---|---|
| Spring JDBC: Vereinfachen Sie die Verwendung von namerparameterjdbctemplate | SPR-10256 und SPR-10257 |
| Bean -Validierung / Hibernate -Validator: Vereinfachen Sie die Abhängigkeiten der Maven -Abhängigkeiten und Rückwärtskompatibilität | HV-790 und HV-792 |
| Federdaten: Bieten Sie mehr Flexibilität bei der Arbeit mit JPQL -Abfragen | DataJPA-292 |
| Löwenzahn: Verbessert den Löwenzahnfilter für die Unterstützung des Stegs | 113 |
Der Problem Tracker ist der bevorzugte Kanal für Fehlerberichte, Features -Anfragen und Senden von Pull -Anfragen.
Für Pull -Anfragen sind die Editor -Einstellungen in der Editor -Konfiguration verfügbar, um sie bei gemeinsamen Texteditoren einfach zu verwenden. Lesen Sie mehr und laden Sie Plugins unter http://editorconfig.org herunter.