对于第一个 Java EE Spring 项目,您的“最佳实践”是什么?[已关闭]

2022-09-01 09:35:20

我目前正在尝试使用Spring框架进入Java EE开发。由于我是Spring的新手,很难想象一个好的运行项目应该如何开始。

对于初学者来说,您有什么最佳实践,小费或主要的DO NOT吗?你是如何开始Spring的 - 大项目还是小型教程式应用程序?您立即使用了哪种技术:AOP,复杂的休眠...


答案 1

小提示 - 我发现根据应用程序问题模块化并清楚地标记我的Spring xml上下文文件很有帮助。以下是我处理的 Web 应用的示例:

  • MyProject / src / main / resources / spring /
    • 数据源.xml - 我的单数据源 Bean。
    • 持久性.xml - 我的 DAO/存储库。取决于豆类。datasource.xml
    • 服务.xml - 服务层实现。这些通常是我使用AOP应用事务性的bean。取决于豆类。persistence.xml
    • 控制器.xml - 我的弹簧 MVC 控制器。取决于豆类。services.xml
    • 视图.xml - 我的视图实现。

这份清单既不完美,也不详尽,但我希望它能说明这一点。选择最适合您的命名策略和粒度。

在我(有限的)经验中,我看到这种方法具有以下好处:

更清晰的架构

名称清晰的上下文文件为那些不熟悉您的项目结构的人提供了一个合理的起点来开始寻找bean定义。可以使检测循环/不需要的依赖项变得更加容易。

帮助域设计

如果你想添加一个bean定义,但它不适合你的任何上下文文件,也许有一个新的概念或关注点出现了?例子:

  • 假设您希望使用 AOP 使服务层成为事务性层。你是将这些豆类定义添加到 中,还是将它们放在自己的定义中?与您的团队讨论一下。您的交易策略应该是可插拔的吗?services.xmltransactionPolicy.xml
  • 将 Acegi/Spring Security Bean 添加到您的文件中,还是创建一个上下文文件?对于不同的部署/环境,您是否有不同的安全要求?controllers.xmlsecurity.xml

集成测试

您可以连接应用程序的子集以进行集成测试(例如:给定上述文件,以测试您只需要创建的数据库和bean)。datasource.xmlpersistence.xml

具体来说,您可以按如下方式对集成测试类进行批注:

@ContextConfiguration(locations = { "/spring/datasource.xml" , "/spring/persistence.xml" })

与Spring IDE的Beans Graph配合得很好

拥有大量重点突出且命名良好的上下文文件,可以轻松创建自定义BeansConfigSets,以使用Spring IDE的Beans Graph可视化应用程序的层。我以前曾使用过此功能,为新团队成员提供应用程序组织的高级概述。


答案 2

首先关注春天的核心:依赖注入。一旦你看到了DI的所有使用方式,然后开始考虑更有趣的部分,如AOP,远程处理,JDBC模板等。所以我最好的建议是让你对Spring的使用从核心开始。

最佳实践?如果您使用的是标准 XML 配置,请管理单个文件的大小并明智地对其进行注释。你可能会认为你和其他人会完全理解你的bean定义,但实际上它们比普通的旧java代码更难找回。

祝你好运!


推荐