春季上下文文件组织和最佳实践

2022-09-02 01:17:03

我们已经开始在我的项目中使用Spring框架。在熟悉基本功能(IoC)之后,我们也开始使用弹簧aop和弹簧安全性。

问题是我们现在有超过8个不同的上下文文件,我觉得我们没有充分考虑这些文件的组织及其角色。随着项目的发展,引入了新文件。我们有不同的上下文文件:元数据,aop,授权,服务,Web资源(它是一个RESTful应用程序)。因此,当开发人员想要添加新的bean时,并不总是清楚他应该在哪个文件中添加它。我们需要方法论。

问题:

是否有 Spring 文件组织的最佳实践?

上下文文件应该封装层(DAL、业务逻辑、Web)还是用例?还是流?


答案 1

如果你还在项目的早期,我强烈建议你看看注释驱动的配置。转换为注释后,我们只有1个带有定义的xml文件,它真的很小,这是一个大项目。注释驱动的配置将重点放在实现上,而不是 xml 上。它还或多或少地删除了相当冗余的抽象层,即弹簧“豆名”。事实证明,Bean名称的存在主要是因为xml(Bean名称仍然存在于注释配置中,但在大多数情况下是无关紧要的)。在一个大型项目上进行此切换后,每个人都100%同意它要好得多,我们也有相当可观的证据表明这是一个更有效率的环境。

我真的会推荐任何使用弹簧切换到注释的人。也可以将它们混合在一起。如果您需要过渡性建议,我想很容易询问SO;)


答案 2

从 applicationContext 开始.xml,当有很多有共同点的豆子时,就分开。

为了给您一些可能的设置的想法,在我当前正在处理的应用程序中,以下是我在服务器中所拥有的内容:

  • 应用上下文.xml
  • 安全性上下文.xml
  • 调度上下文.xml
  • 数据源上下文.xml
  • spring-ws-servlet.xml (Spring Web Services related bean)

对于 GUI 客户端,由于此项目具有多个,因此有一个包含共享上下文文件的文件夹,最重要的是,每个客户端都有自己的上下文文件夹。共享上下文文件:

  • sharedMainApplicationContext.xml
  • sharedGuiContext.xml
  • 共享安全上下文.xml

特定于应用的文件:

  • mainApplicationContext.xml和
  • guiContext.xml和
  • 命令上下文.xml(菜单结构)
  • sharedBusinessLayerContext.xml(用于连接到服务器的 bean)

推荐