java - 第一个 Java EE Spring 项目的 "best practice"是什么?

标签 java spring jakarta-ee aop

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

您有任何最佳实践、提示或主要不要作为初学者吗?您是如何开始使用 Spring 的——大型项目或类似教程的小型应用程序?你马上用的什么技术:AOP、复杂的Hibernate……

最佳答案

小提示 - 我发现根据应用程序关注模块化和清晰地标记我的 Spring xml 上下文文件很有帮助。以下是我开发的 Web 应用的示例:

  • MyProject/src/main/resources/spring/
    • datasource.xml - 我的单一数据源 bean。
    • persistence.xml - 我的 DAO/存储库。取决于 datasource.xml bean。
    • services.xml - 服务层实现。这些通常是我使用 AOP 应用事务性的 bean。取决于 persistence.xml bean。
    • controllers.xml - 我的 Spring MVC Controller 。取决于 services.xml bean。
    • views.xml - 我的 View 实现。

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

根据我的(有限的)经验,我发现这种方法具有以下好处:

架构更清晰

清晰命名的上下文文件为那些不熟悉您的项目结构的人提供了一个合理的 开始寻找 bean 定义的地方。可以更轻松地检测循环/不需要的依赖项。

帮助域设计

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

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

集成测试

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

具体来说,您可以这样注释集成测试类:

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

与 Spring IDE 的 Beans Graph 配合良好

拥有大量集中且命名良好的上下文文件可以轻松创建自定义 BeansConfigSet 以使用 Spring IDE 的 Beans Graph 可视化应用程序的层。 .我以前用它来为新团队成员提供我们应用程序组织的高级概述。

关于java - 第一个 Java EE Spring 项目的 "best practice"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569/

相关文章:

java - 整数基数,到底是什么意思?

java - 为什么 Spring 不支持直接字段依赖注入(inject)(autowired 除外)?

java - 基于触发器java运行任务

javascript - Primefaces GMap Overlay Select 事件并在单击时弹出输出面板

java - 创建具有依赖约束的多态对象的模式

Java:如何正确解析字符串到日期?

Spring Boot - 没有写入日志文件(不尊重logging.file)

java - 当我从 crudrepository 更改为 pagingand sortingrepository 时,没有保存方法

java - 使用 Jersey 客户端进行 POST 操作

java - 在运行时通过外部属性文件更改 logback 中的日志级别