CarPlant 不接受空的 CarModels

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

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

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

在该应用程序中,我使用了您可能还没有看到很多种技术。 这是一个您可以期望的小列表

  • @Required dependencies - 通过使用 RequiredAnnotationBeanPostProcessor,我们可以检查是否实际设置了某些依赖项。 这种机制(当然只适用于 Java 5)是 XML 中 dependency-check 属性的一个非常好的替代方案
  • @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 社区中所有即将举行的活动。

查看全部