1.spring-petclinic介绍
spring-petclinic是spring官方做的一个宠物商店,结合了spring和其他一些框架的最佳实践。
架构如下:
1)前端
Thymeleaf做HTML模板引擎或纯JSP加Tag
CSS采用Bootstrap
webjars用来管理客户端依赖
Dandelion做表格
2)后端
Controller,用Spring MVC, Bean Validation
Service, 用Spring事务,加上ehcache缓存
Repository,写了3套,spring data jpa, jpa, jdbc,供大家自由选择
异常处理,统一交给SimpleMappingExceptionResolver处理,导向一个页面exception.jsp
2.性能调优
有专家对这个示例做了一些性能调优实战,使得性能从285 req/sec提升到了1225 req/sec。
性能调优实战一共分5天,对应5篇文章。
第1天,搭建jmeter测试环境,写jmeter脚本,测试一开始的性能是285 req/sec
第2天,用yourkit剖析问题,抓出元凶Dandelion,并解决性能问题,性能提升到560 req/sec。
随后去session化,性能变为532 req/sec。
再使用tomcat新的NIO connector,性能提升到867 req/sec
第3天,找到Commons DBCP乃又一元凶,改用tomcat dbcp,性能提升到910 req/sec。
Webjars也有损性能,所以去掉,性能提升到942 req/sec
去掉人为的monitoring AOP,性能提升到959 req/sec
第4天,测试发现spring data jpa, jpa, jdbc三种性能差别不大。
使用延迟加载和Open Session In View(要小心,有陷阱),性能提升到1066 req/sec
第5天,增加一个cache,用来缓存JpaOwnerRepositoryImpl.findByLastName(),性能提升到1225 req/sec
3.链接
官方原版petclinic
专家优化版petclinic
5篇优化文章,对应5天优化历程
Improving the performance of the Spring-Petclinic sample application (part 1 of 5)
Improving the performance of the Spring-Petclinic sample application (part 2 of 5)
Improving the performance of the Spring-Petclinic sample application (part 3 of 5)
Improving the performance of the Spring-Petclinic sample application (part 4 of 5)
Improving the performance of the Spring-Petclinic sample application (part 5 of 5)
分享到:
相关推荐
git clone https://github.com/spring-petclinic/spring-petclinic-angular.git 安装本地项目包 npm install --save-dev @angular/cli@latest if npm version > 5.0 delete package-lock.json file ( bug in npm...
REST版本的Spring PetClinic示例应用程序(spring-framework-petclinic扩展) Spring Petclinic应用程序的... docker run -p 9966:9966 springcommunity/spring-petclinic-rest 然后,您可以在此处访问petclinic: 此
cd spring-petclinic-angularjs ./mvnw clean install cd spring-petclinic-server ../mvnw spring-boot:run 然后,您可以在此处访问petclinic: 如果您发现Spring Petclinic的错误/建议的改进 我们的问题跟踪器可在...
SpringPetClinic样品申请通过一些图表了解Spring Petclinic应用程序在本地运行诊所git clone https://github.com/spring-projects/spring-petclinic.gitcd spring-petclinic./mvnw spring-boot:run 然后,您可以在...
通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...
Angular-spring-petclinic-angular.zip,Angular 8版Spring Petclinic示例应用程序(前端)Spring Petclinic Angular,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入...
REST版本的Spring PetClinic示例应用程序(spring-framework-petclinic扩展) Spring Petclinic应用程序的此后端版本仅提供REST API。 没有UI 。 是使用REST API的Angular前端应用...cd spring-petclinic-rest ./mvnw
**Spring框架的示例项目源码 - Spring Petclinic** Spring Petclinic是Spring官方提供的一款开源示例应用,它用于展示Spring框架的各种特性及其在实际开发中的应用。该项目可以帮助开发者理解和学习Spring框架的...
Spring PetClinic 示例应用程序几张图了解Spring Petclinic应用在本地经营宠物诊所git clone https://github.com/spring-projects/spring-petclinic.gitmvn tomcat7:run然后您可以在此处访问 petclinic: 如果您发现...
通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...
SpringPetClinic样品申请它是什么样子的? -spring-petclinic已在此处部署在cloudfoundry上: ://demo-spring-petclinic.cfapps.io/通过一些图表了解Spring Petclinic应用程序在本地运行诊所git clone ...
通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...
-spring-petclinic 已部署在 cloudfoundry 上: ://demo-spring-petclinic.cfapps.io/ 几张图了解Spring Petclinic应用 在本地经营宠物诊所 git clone https://github.com/SpringSource/spring-petclinic.git mvn...
spring-petclinic-master运行mvn install报错:Failed to execute goal io.spring.javaformat:spring-javaformat-maven-plugin:0.0.19:validate (default) on project spring-petclinic: Formatting violations ...
使用Spring Cloud构建的Spring PetClinic示例应用程序的分布式版本 该微服务分支最初源自以演示如何将示例Spring应用程序拆分为。 为了实现该目标,我们使用了技术堆栈中的Spring Cloud Gateway,Spring Cloud ...
-spring-petclinic 已部署在 cloudfoundry 上: ://demo-spring-petclinic.cfapps.io/ 几张图了解Spring Petclinic应用 在本地经营宠物诊所 git clone https://github.com/SpringSource/spring-petclinic.git mvn...
通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...
cd spring-petclinic-stable ./mvnw spring-boot:run 然后,您可以在此处访问petclinic: 如果您发现Spring Petclinic的错误/建议的改进 我们的问题跟踪器可在以下位置找到: : 数据库配置 在默认配置下,...
本项目"spring-petclinic-rest-vet"是Spring PetClinic的一个扩展,它展示了如何利用Spring Boot和RESTful API技术构建一个关于兽医服务的应用。这篇文章将深入探讨这个项目的实现细节和技术要点。 首先,Spring ...
Spring PetClinic 示例应用程序几张图了解Spring Petclinic应用在本地经营宠物诊所git clone https://github.com/spring-projects/spring-petclinic.gitmvn tomcat7:run然后您可以在此处访问 petclinic: 如果您发现...