該倉庫經春季團隊的批准,是春季項目/春季春季的叉子。它允許春季社區維護具有普通的舊彈簧框架配置和3層體系結構(IE演示 - >服務 - >存儲庫)的Petclinic版本。現在,“規範”實現基於春季啟動,百里角和麵向骨料的域。
請參閱此處的演示文稿(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
然後,您可以在此處訪問Petclinic:http:// localhost:8080/
我們的問題跟踪器可在此處提供:https://github.com/spring-petclinic/spring-framework-petclinic/issues
Petclinic在默認配置中使用了一個內存數據庫(H2),該數據庫在啟動時通過數據填充。
如果需要持久的數據庫配置,則為MySQL和PostgreSQL提供了類似的設置。要使用持久數據庫在本地運行Petclinic,需要使用Main Pom.xml文件中定義的配置文件運行。
對於MySQL數據庫,需要使用Main Pom.xml文件中定義的“ MySQL”配置文件運行。
./mvnw jetty:run-war -P MySQL
在此之前,最好檢查pom.xml文件中的mySQL配置文件中定義的屬性。
<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>
您可以使用適用於您的操作系統的任何安裝程序,也可以使用Docker在本地啟動MySQL:
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
對於PostgreSQL數據庫,需要使用Main Pom.xml文件中定義的“ PostgreSQL”配置文件運行。
./mvnw jetty:run-war -P PostgreSQL
在此之前,最好檢查pom.xml文件中的PostgreSQL配置文件中定義的屬性。
<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>
您也可以使用適用於您的操作系統的任何安裝程序或使用Docker的任何安裝程序在本地啟動PostgreSQL:
docker run --name postgres-petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 -d postgres:9.6.0
持久性層具有3個可用的實現:JPA(默認),JDBC和Spring Data JPA。默認的JPA實現可以通過使用Spring配置文件來更改: jdbc , spring-data-jpa和jpa 。
例如,您可以使用-Dspring.profiles.active=jdbc VM選項來使用JDBC實現啟動應用程序。
./mvnw jetty:run-war -Dspring.profiles.active=jdbc
src/main/webapp/resources/resources/css中有一個petclinic.css 。它是由petclinic.scss源生成的,結合了引導庫。如果您更改scss或升級Bootstrap,則需要使用Maven配置文件“ CSS”(即./mvnw generate-resources -P css重新編譯CSS資源。
以下項目應安裝在系統中:
git clone https://github.com/spring-petclinic/spring-framework-petclinic.git
File -> Import -> Maven -> Existing Maven project
然後在命令行中構建./mvnw generate-resources ,或使用Eclipse Launcher(右鍵單擊項目並Run As -> Maven install )來生成CSS。配置Jetty或Tomcat Web容器,然後部署spring-petclinic.war文件。
在主菜單中,選擇File > Open ,然後選擇petclinic pom.xml。單擊Open按鈕。
CSS文件是由Maven構建生成的。您可以在命令行中構建它們./mvnw generate-resources ,也可以右鍵單擊spring-petclinic項目,然後Maven -> Generates sources and Update Folders 。
轉到Run -> Edit Configuration然後配置Tomcat或Jetty Web容器。部署spring-petclinic.war文件。通過單擊Run圖標來運行應用程序。
訪問http:// localhost:8080在您的瀏覽器中。
以下項目應安裝在系統中:
| Java配置 | |
|---|---|
| Java配置分支 | Petclinic默認使用XML配置。如果您想改用Java Config,則這裡有一個Java配置分支 |
| 在“ Web”層中 | 文件 |
|---|---|
| 春季MVC -XML集成 | mvc-view-config.xml |
| 春季MVC- contentNegotiatingViewResolver | mvc-view-config.xml |
| JSP自定義標籤 | Web-Inf/tags,CreateOrupDateWownerForm.jsp |
| JavaScript依賴性 | JavaScript庫在pom.xml中稱為WebJars |
| 靜態資源配置 | 春季配置中的資源映射 |
| 靜態資源使用 | htmlheader.tag,footer.tag |
| 胸腺 | 在2016年末,原始的春季佩特克林尼斯(Petclinic)從JSP轉移到百里葉。 |
| “服務”和“存儲庫”層 | 文件 |
|---|---|
| 交易 | Business-config.xml,診所維奇西姆普 |
| 快取 | tools-config.xml,診所維奇西姆普 |
| 豆配置文件 | Business-config.xml,診所維奇切德斯特郡,java,petclinicinitializer.java |
| JDBC | Business-Config.xml,JDBC文件夾 |
| JPA | Business-Config.xml,JPA文件夾 |
| 春季數據JPA | business-config.xml,springdatajpa文件夾 |
此應用程序使用Google臂臂將優化的Docker映像構建到Docker Hub存儲庫中。 POM.xml已配置為以springcommunity/spring-framework-petclinic圖像名稱發布圖像。
JIB通過將乾擾碼頭作為基本圖像來容忍這個戰爭項目。
構建並將Petclinic的容器圖像推向Docker Hub註冊表:
mvn jib:build
主彈簧項目Github組織中的春季petclinic Master分支是“典型”實現,目前基於Spring Boot和Thymeleaf。
這個春季框架 - 挑剔的項目是在特殊的github org:spring-petclinic中託管的幾個叉子之一。如果您對可用於實施寵物診所的不同技術堆棧有特別的興趣,請加入那裡的社區。
在春季petclinic應用程序上工作的最佳部分之一是,我們有機會直接與許多開源項目聯繫。我們發現了一些錯誤/建議的改進,例如春季,春季數據,豆類驗證甚至日食!在許多情況下,它們在短短幾天內就已固定/實施。這是其中的清單:
| 姓名 | 問題 |
|---|---|
| Spring JDBC:簡化命名Parameterjdbctemplate的用法 | SPR-10256和SPR-10257 |
| Bean驗證 /休眠驗證器:簡化Maven依賴性和向後兼容性 | HV-790和HV-792 |
| 春季數據:使用JPQL查詢時提供更大的靈活性 | DataJPA-292 |
| 蒲公英:改善蒲公英的碼頭式支撐 | 113 |
問題跟踪器是用於錯誤報告,功能請求和提交拉的請求的首選頻道。
對於拉動請求,編輯器首選項可在編輯器配置中可用,以便在常見的文本編輯器中輕鬆使用。在http://editorconfig.org上閱讀更多並下載插件。