Aprobado por el equipo de primavera, este repositorio es una bifurcación de Spring-Projects/Spring-Petclinic. Permite a la comunidad de primavera mantener una versión de Petclinic con una configuración de marco de primavera antigua y con una arquitectura de 3 capas (es decir, presentación-> servicio-> repositorio). La implementación "canónica" ahora se basa en el arranque de primavera, el thymeleaf y el dominio orientado al agregado.
Vea la presentación aquí (Actualización de 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
Luego puede acceder a Petclinic aquí: http: // localhost: 8080/
Nuestro rastreador de problemas está disponible aquí: https://github.com/spring-petclinic/spring-framework-petclinic/issues
En su configuración predeterminada, PetClinic utiliza una base de datos en memoria (H2) que se pobla al inicio con los datos.
Se proporciona una configuración similar para MySQL y PostgreSQL en caso de que se necesite una configuración de base de datos persistente. Para ejecutar petclinic localmente utilizando la base de datos persistente, es necesario ejecutar con el perfil definido en el archivo pom.xml principal.
Para la base de datos MySQL, es necesario ejecutar con el perfil 'MySQL' definido en el archivo Pom.xml principal.
./mvnw jetty:run-war -P MySQL
Antes de hacer esto, sería bueno verificar las propiedades definidas en el perfil MySQL dentro del archivo pom.xml.
<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>
Puede iniciar MySQL localmente con cualquier instalador que funcione para su sistema operativo o con Docker:
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
Para la base de datos PostgreSQL, es necesario ejecutar con el perfil 'PostgreSQL' definido en el archivo Pom.xml principal.
./mvnw jetty:run-war -P PostgreSQL
Antes de hacer esto, sería bueno verificar las propiedades definidas en el perfil PostgreSQL dentro del archivo pom.xml.
<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>
También puede iniciar PostgreSQL localmente con cualquier instalador que funcione para su sistema operativo o con Docker:
docker run --name postgres-petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 -d postgres:9.6.0
La capa de persistencia tiene 3 implementaciones disponibles: JPA (predeterminado), JDBC y Spring Data JPA. La implementación predeterminada de JPA podría cambiarse utilizando un perfil de primavera: jdbc , spring-data-jpa y jpa .
Como ejemplo, puede usar las opciones -Dspring.profiles.active=jdbc VM para iniciar la aplicación con la implementación JDBC.
./mvnw jetty:run-war -Dspring.profiles.active=jdbc
Hay un petclinic.css en src/main/webapp/resources/resources/css . Se generó a partir de la fuente petclinic.scss , combinada con la biblioteca de bootstrap. Si realiza cambios en el scss o actualiza Bootstrap, deberá volver a compilar los recursos de CSS utilizando el perfil de Maven "CSS", es decir ./mvnw generate-resources -P css .
Los siguientes elementos deben instalarse en su sistema:
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
File -> Import -> Maven -> Existing Maven project
Luego construya en la línea de comando ./mvnw generate-resources o usar el lanzador de eclipse (haga clic derecho en el proyecto y Run As -> Maven install ) para generar el CSS. Configure un embarcadero o un contenedor web Tomcat y luego implementa el archivo spring-petclinic.war .
En el menú principal, seleccione File > Open y seleccione Pom.xml Petclinic. Haga clic en el botón Open .
Los archivos CSS se generan a partir de la compilación Maven. Puede construirlos en la línea de comandos ./mvnw generate-resources o hacer clic derecho en el proyecto spring-petclinic y luego Maven -> Generates sources and Update Folders .
Vaya a la Run -> Edit Configuration y luego configure un contenedor web Tomcat o un jetty. Implemente el archivo spring-petclinic.war . Ejecute la aplicación haciendo clic en el icono Run .
Visite http: // localhost: 8080 en su navegador.
Los siguientes elementos deben instalarse en su sistema:
| Configuración de Java | |
|---|---|
| Rama de configuración de Java | PetClinic utiliza la configuración XML de forma predeterminada. En caso de que desee usar la configuración de Java, hay una rama de configuración de Java disponible aquí |
| Dentro de la capa 'web' | Archivos |
|---|---|
| Spring MVC - Integración XML | MVC-View-Config.xml |
| Spring MVC - ContentNegotiatingViewResolver | MVC-View-Config.xml |
| JSP Etiquetas personalizadas | Web-Inf/Tags, CreateOrupdateOwnerform.jsp |
| Dependencias de JavaScript | Las bibliotecas de JavaScript se declaran como webjars en el pom.xml |
| Configuración de recursos estáticos | Mapeo de recursos en la configuración de primavera |
| Uso de recursos estáticos | htmlheader.tag, footer.tag |
| Tomada | A fines de 2016, el Spring Petclinic original se mudó de JSP a Thymeleaf. |
| Capas de 'servicio' y 'repositorio' | Archivos |
|---|---|
| Actas | Business-Config.xml, ClinicServiceImpl.java |
| Cache | herramientas-config.xml, clínica serviceImpl.java |
| Perfiles de frijoles | Business-Config.xml, ClinicServiceJdbctests.java, PetClinicinitializer.java |
| JDBC | Business-Config.xml, carpeta JDBC |
| JPA | Business-Config.xml, JPA Carpeta |
| Datos de primavera JPA | Business-Config.xml, SpringDataJPA Carpeta |
Esta aplicación utiliza Google JIB para crear una imagen de Docker optimizada en el repositorio de Docker Hub. El pom.xml se ha configurado para publicar la imagen con un nombre de imagen springcommunity/spring-framework-petclinic .
JIB contiene este proyecto de guerra utilizando el embarcadero distrolés como una imagen base.
Construya y empuje la imagen del contenedor de Petclinic al registro Docker Hub:
mvn jib:build
La rama maestra de Petclinic Spring en la organización principal de los proyectos de primavera de primavera es la implementación "canónica", actualmente basada en Spring Boot y Thymeleaf.
Este proyecto Spring-Frameworkwork-Petclinic es uno de los varios horquillas alojados en una organización especial de GitHub: Spring-Petclinic. Si tiene un interés especial en una pila de tecnología diferente que podría usarse para implementar la clínica de mascotas, únase a la comunidad allí.
Una de las mejores partes sobre trabajar en la aplicación Spring Petclinic es que tenemos la oportunidad de trabajar en contacto directo con muchos proyectos de código abierto. ¡Encontramos algunos errores/mejoras sugeridas en varios temas como Spring, Spring Data, Bean Validation e incluso Eclipse! En muchos casos, se han solucionado/implementado en solo unos días. Aquí hay una lista de ellos:
| Nombre | Asunto |
|---|---|
| Spring JDBC: Simplifique el uso de NamedParameterJDBCTemplate | SPR-10256 y SPR-10257 |
| Validación de Bean / Validador de Hibernate: Simplifique las dependencias de Maven y la compatibilidad hacia atrás | HV-790 y HV-792 |
| Datos de resorte: proporcione más flexibilidad cuando se trabaje con consultas JPQL | DataJPA-292 |
| Dandelion: mejora el dandelionfilter para el apoyo del muelle | 113 |
El rastreador de problemas es el canal preferido para informes de errores, solicitudes de características y envío de solicitudes de extracción.
Para las solicitudes de extracción, las preferencias del editor están disponibles en la configuración del editor para usar fácilmente en editores de texto comunes. Lea más y descargue complementos en http://editorconfig.org.