This repo is a fork of the Spring PetClinic Sample application: https://github.com/spring-petclinic/spring-framework-petclinic/. This fork should not be used as a reference on best practices as it has intentional errors in the code.
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
cd spring-framework-petclinic
./mvnw jetty:run-war
docker run -p 8080:8080 springcommunity/spring-framework-petclinic
You can then access petclinic here: http://localhost:8080/
Our issue tracker is available here: https://github.com/spring-petclinic/spring-framework-petclinic/issues
In its default configuration, Petclinic uses an in-memory database (HSQLDB) which gets populated at startup with data. A similar setups is provided for MySql and PostgreSQL in case a persistent database configuration is needed. To run petclinic locally using persistent database, it is needed to run with profile defined in main pom.xml file.
For MySQL database, it is needed to run with 'MySQL' profile defined in main pom.xml file.
./mvnw jetty:run-war -P MySQL
Before do this, would be good to check properties defined in MySQL profile inside pom.xml file.
<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>root</jdbc.username>
<jdbc.password>petclinic</jdbc.password>
</properties>
You could start MySql locally with whatever installer works for your OS, or with docker:
docker run --name mysql-petclinic -e MYSQL_ROOT_PASSWORD=petclinic -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:5.7.8
For PostgreSQL database, it is needed to run with 'PostgreSQL' profile defined in main pom.xml file.
./mvnw jetty:run-war -P PostgreSQL
Before do this, would be good to check properties defined in PostgreSQL profile inside pom.xml file.
<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>
You could alos start PostgreSQL locally with whatever installer works for your OS, or with docker:
docker run --name postgres-petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 -d postgres:9.6.0
The following items should be installed in your system:
- Java 8 or above
- Maven 3.3+ (http://maven.apache.org/install.html)
- git command line tool (https://help.github.com/articles/set-up-git)
- Tomcat 9+
- Your prefered IDE
- Eclipse with the m2e plugin. Note: when m2e is available, there is an m2 icon in Help -> About dialog. If m2e is not there, just follow the install process here: http://www.eclipse.org/m2e/
- Spring Tools Suite (STS)
- IntelliJ IDEA
- On the command line
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
- Inside Eclipse or STS
File -> Import -> Maven -> Existing Maven project
Then either build on the command line ./mvnw generate-resources
or using the Eclipse launcher (right click on project and Run As -> Maven install
) to generate the CSS.
Configure a Tomcat web server for deployment.
- Inside IntelliJ IDEA
In the main menu, select File > Open
and select the Petclinic pom.xml. Click on the Open
button.
CSS files are generated from the Maven build. You can either build them on the command line ./mvnw generate-resources
or right click on the spring-petclinic
project then Maven -> Generates sources and Update Folders
.
Go to the Run -> Edit Configuration
then configure a Tomcat or a Jetty web container. Deploy the spring-petclinic.war
file.
Run the application by clicking on the Run
icon.
- Navigate to Petclinic
Visit http://localhost:8080 in your browser.