CarPlant 不接受空 CarModel

工程 | Alef Arendsen | 2007年3月12日 | ...

上周五,我完成了一次在我们客户那里的培训课程。因为我在住的酒店里有一些空闲时间,我完善了我在培训期间编写的示例应用程序,以便将其发布到网上供培训人员使用。通常,我尝试找到一个特定于客户领域的少量示例应用程序,以便在培训期间使用。这使得它比一些HelloWorld示例更生动一些。

这个客户是一个大型汽车品牌,他们在整个组织中广泛采用了Spring。这就是为什么我创建了一个能够生产汽车的CarPlant系统。您可以在下面找到一个小的UML图,显示系统中的(相当小的)领域模型和服务。

在这个应用程序中,我使用了您可能还没有见过很多的技术。以下是您可以期待的一些内容:

  • @Required 依赖项 - 通过使用 RequiredAnnotationBeanPostProcessor,我们可以检查某些依赖项是否实际设置。这种机制(当然只在 Java 5 上可用)是 XML 中依赖项检查属性的一个很好的替代方案。
  • @NotNull 参数检查 - 这一个简单的方面,我通常在培训课程中展示。它使用由注释驱动的切点(我认为这是驱动切点的一种非常简洁的方法)来检查传递给方法的空参数(所以现在你知道标题指的是什么了 ;-))。
  • 使用和不使用 HibernateTemplate 的 DAO - 用于展示 Spring 的 DAO 功能的灵活性。
  • 基于注解的事务管理,如果您使用 Java 5,我绝对推荐这个功能。在我看来,使用注解进行事务管理非常合适。
  • 一些集成测试 - 当我去客户那里时,这个 Spring 宝石(我不认为只有我这么认为 ;-))还没有被充分使用,所以让我们对 AbstractTransactionalDataSourceSpringContextTests 做一些更多的推广(感谢 Rod 的命名 :))。
  • 此示例使用 Maven,因此您必须安装它,因为我没有包含依赖项。

    carplant.png

    示例的源代码:CarPlant.zip

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部