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 创建了一个 Spring-Petclinic 分支,该分支使用 Thymeleaf 代替 JSP。他们在以下博客条目中记录了迁移步骤: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 China 的 Li Yanhui 非常好地将 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 新闻简报保持联系

订阅