汽车工厂不接受空车模型

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

上周五,我在我们一位客户那里结束了一个培训课程。因为我在酒店里有些空闲时间,所以我完善了我在培训期间编写的示例应用程序,以便将其在线发布给参加培训的人。通常我会在培训期间尝试找到一个与客户领域相关的小型示例应用程序。这使得它比一些HelloWorld示例更生动一些。

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

在该应用程序中,我使用了您可能不太熟悉的各种技术。以下是您可以期待的一些内容列表:

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

    carplant.png

    示例的源代码: CarPlant.zip

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有