Spring Petclinic已上线GitHub!

工程 | Michael Isvy | 2013年3月21日 | ...

我们很高兴地宣布,Spring Petclinic示例应用程序已经过重构。

源代码现在可在github上获取。以下是新应用程序的屏幕截图:

以下是新架构的概述

Spring,Spring,Spring

我们使用了以下Spring特性

  • 使用注解的依赖注入
  • 使用jdbc(JdbcTemplate)、JPA或Spring Data JPA(存储库层)的数据访问集成。您可以通过在web.xml或其中一个JUnit测试中设置相应的bean配置文件来选择使用哪个实现。
  • 使用@Transactional的事务(服务层)
  • 使用@Cacheable和ehcache作为缓存实现的缓存(服务层)
  • 面向切面编程(监控每个存储库方法的调用次数)
  • Spring MVC:使用Bean Validation(JSR-303)的表单验证
  • Spring MVC:使用ContentNegotiatingViewResolver的内容协商(html、xml或atom)
  • Spring MVC:使用SimpleMappingExceptionResolver的异常处理
  • Spring MVC:使用Spring MVC测试框架

 

我们充满活力的社区

我们收到了来自我们社区专家的大量贡献(包括几个开源项目的负责人)。

 

Thymeleaf

如果您还没有听说过它,Thymeleaf可以被视为JSP的替代品。它将自己定义为一个XML/XHTML/HTML5模板引擎。

它基于一些带有少量命名空间魔力的纯HTML文件。

Thymeleaf项目的Daniel和Soraya创建了一个使用Thymeleaf而不是JSP的Spring-Petclinic分支。他们在博客文章中记录了迁移步骤:http://www.thymeleaf.org/petclinic.html

Spring Petclinic的Thymeleaf分支可在以下位置找到:https://github.com/thymeleaf/thymeleafexamples-petclinic

要了解更多关于Thymeleaf的信息:http://www.thymeleaf.org

在Twitter上关注Thymeleaf:https://twitter.com/thymeleaf

 

Dandelion

Dandelion提供了一组您可以与JSP或Thymeleaf一起使用的标签库。

我们在Spring-Petclinic中使用它来处理DataTables。它基于jQuery DataTables和Bootstrap生成表格。

您可以执行以下操作


<datatables:table data="${ownerList}" id="dataTable"  theme="bootstrap2" export="pdf">
 <datatables:column title="Name" property="name" sortable="true" />
 <datatables:column title="Address" property="address" sortable="true" />
</datatables:table>

输出的HTML表格如下所示

Dandelion用于Spring Petclinic的主分支。

Dandelion项目的Thibault Duchateau撰写了一篇很好的博客文章,描述了Spring Petclinic应用程序的迁移

要了解更多关于Dandelion的信息: http://dandelion.github.com/

在Twitter上关注他们:https://twitter.com/dandelion_proj

 

Maven还是Gradle?

默认情况下,Spring Petclinic使用Maven,因为它是Java应用程序最常见的选择。虽然Spring Petclinic与大多数实际应用程序相比相当小,但它的Maven pom.xml文件已经非常冗长。

来自Thoughtworks中国的李燕辉很乐意将Spring Petclinic迁移到Gradle。这是一种很好的方法,可以并排比较Maven和Gradle。build.gradle配置文件确实更容易理解。它目前包含143行(而Maven POM包含543行)。

您可以在这里浏览基于Gradle版本的Spring Petclinic:https://github.com/whimet/spring-petclinic 感谢他们,我们能够识别Spring Petclinic内部的一些包含代码重复和缺乏自动化测试的地方。

 

性能测试:让我们扩展!

是否有可能采用现在的Spring Petclinic,并将其扩展到单服务器实例上每秒1000个请求?来自Ippon Technologies的Julien Dubois撰写了一篇关于该主题的精彩五部分博客文章。

它回答了以下问题:- 我应该依赖会话上下文吗?(第2部分) - 我应该使用哪个Apache Tomcat连接器?(第2部分) - 我应该使用哪个数据库连接池?(第3部分) - JDBC是否比JPA或Spring Data JPA更快?(第4部分) - 使用OpenSessionInViewFilter的优点是什么?(第4部分)

 

参考资料

GitHub上的Spring Petclinic Cloud Foundry上的Spring Petclinic Petclinic + Thymeleaf Petclinic + Gradle

 

获取Spring通讯

通过Spring通讯保持联系

订阅