Spring Team의 승인을받은이 저장소는 Spring-Projects/Spring-Petclinic의 포크입니다. 스프링 커뮤니티는 일반 구식 스프링 프레임 워크 구성 과 3 층 아키텍처 (예 : 프레젠테이션-> 서비스-> 저장소)를 갖춘 Petclinic 버전을 유지할 수 있습니다. "표준"구현은 이제 스프링 부팅, Thymeleaf 및 집계 지향 도메인을 기반으로합니다.
여기 프레젠테이션을 참조하십시오 (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>
OS 또는 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>
또한 OS 또는 Docker에서 작동하는 설치 프로그램이 무엇이든 로컬로 PostgreSQL을 시작할 수도 있습니다.
docker run --name postgres-petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 -d postgres:9.6.0
지속성 계층에는 JPA (기본값), JDBC 및 스프링 데이터 JPA의 3 가지 구현이 있습니다. 기본 JPA 구현은 스프링 프로파일 ( 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 소스에서 Bootstrap 라이브러리와 결합하여 생성되었습니다. scss 또는 업그레이드 부트 스트랩을 변경하는 경우 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를 생성하십시오. 부두 또는 Tomcat 웹 컨테이너를 구성한 다음 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 웹 컨테이너를 구성하십시오. spring-petclinic.war 파일을 배포하십시오. Run 아이콘을 클릭하여 응용 프로그램을 실행하십시오.
브라우저에서 http : // localhost : 8080을 방문하십시오.
다음 항목은 시스템에 설치해야합니다.
| Java 구성 | |
|---|---|
| Java 구성 분기 | Petclinic은 기본적으로 XML 구성을 사용합니다. 대신 Java Config를 사용하려는 경우 여기에는 Java Config Branch가 있습니다. |
| '웹'레이어 내부 | 파일 |
|---|---|
| 스프링 MVC -XML 통합 | mvc-view-config.xml |
| Spring MVC- ContentNegotiatingViewResolver | mvc-view-config.xml |
| JSP 사용자 정의 태그 | Web-inf/tags, createorupdateownerform.jsp |
| JavaScript 종속성 | JavaScript 라이브러리는 pom.xml에서 Webjars로 선언됩니다 |
| 정적 리소스 구성 | 스프링 구성의 리소스 매핑 |
| 정적 리소스 사용 | htmlheader.tag, ficeer.tag |
| thymeleaf | 2016 년 말, 원래의 봄 Petclinic은 JSP에서 Thymeleaf로 이동했습니다. |
| '서비스'및 '저장소'레이어 | 파일 |
|---|---|
| 업무 | business-config.xml, clinicserviceimpl.java |
| 은닉처 | Tools-config.xml, clinicserviceimpl.java |
| 콩 프로파일 | business-config.xml, clinicservicejdbctests.java, petclinicinitializer.java |
| JDBC | business-config.xml, jdbc 폴더 |
| JPA | Business-Config.xml, JPA 폴더 |
| 스프링 데이터 JPA | Business-Config.xml, SpringDatajpa 폴더 |
이 응용 프로그램은 Google Jib를 사용하여 Docker Hub 리포지토리에 최적화 된 Docker 이미지를 작성합니다. POM.XML은 springcommunity/spring-framework-petclinic 이미지 이름으로 이미지를 게시하도록 구성되었습니다.
Jib는 Distroless Jetty를 기본 이미지로 사용 하여이 전쟁 프로젝트를 컨테이너화합니다.
Petclinic의 컨테이너 이미지를 Docker Hub Registry로 제작하고 밀어 넣으십시오.
mvn jib:build
메인 스프링 프로젝트 Github Org의 Spring Petclinic Master Branch는 현재 스프링 부팅 및 Thymeleaf를 기반으로 한 "정식"구현입니다.
이번 Spring-Framework-Petclinic Project는 특별한 Github 조직 : Spring-Petclinic에서 호스팅 된 몇 개의 포크 중 하나입니다. PET 클리닉을 구현하는 데 사용될 수있는 다른 기술 스택에 특별한 관심이 있다면 커뮤니티에 가입하십시오.
Spring Petclinic Application에서 작업하는 데있어 가장 중요한 부분 중 하나는 많은 오픈 소스 프로젝트와 직접 접촉 할 수있는 기회가 있다는 것입니다. 우리는 스프링, 스프링 데이터, 콩 검증 및 Eclipse와 같은 다양한 주제에 대한 몇 가지 버그/제안 된 개선 사항을 발견했습니다! 대부분의 경우 며칠 만에 고정/구현되었습니다. 다음은 다음과 같은 목록입니다.
| 이름 | 문제 |
|---|---|
| Spring JDBC : PameParameterJdbctemplate의 사용법을 단순화합니다 | SPR-10256 및 SPR-10257 |
| Bean Validation / Hibernate Validator : Maven 종속성 및 후진 호환성 단순화 | HV-790 및 HV-792 |
| 스프링 데이터 : JPQL 쿼리로 작업 할 때 더 많은 유연성을 제공합니다. | DataJPA-292 |
| 민들레 : 부두 지원을위한 민들레 필터를 향상시킵니다 | 113 |
문제 추적기는 버그 보고서, 기능 요청 및 풀 요청 제출에 선호하는 채널입니다.
풀 요청의 경우 편집기 선호도는 편집기 구성에서 공통 텍스트 편집기에서 쉽게 사용할 수 있도록 제공됩니다. 자세한 내용을 읽고 http://editorconfig.org에서 플러그인을 다운로드하십시오.