在 Spring 3 中组织类以进行组件扫描的明智方法是什么?

2023-11-22

我已经开始使用 Spring 3 开发一个新项目,并且正在使用注释。我喜欢我可以连接我的类来注入依赖项,但我知道这是一个不好的做法context:component-scan从基础包开始。

我正在使用一个DispatcherServlet它有自己的 xml 配置文件。其中还有一个context:component-scan。当我第一次开始学习 Spring 时,我的组件扫描有重叠,并且看到 bean 创建了多次。我想避免这种情况。

组织我的包或组件扫描以覆盖所有 bean 而无需重复的好方法是什么?

目前我有这样的包:

my.package.controller
my.package.dao
my.package.entity
my.package.service
my.package.util

如果我在所有这些包中都有豆子,那么似乎最简单的方法就是把<context:component-scan base-package="my.package"></context:component-scan>进入 applicationContext.xml 并完成它。

扫描一下会更好吗my.package.controller在调度程序的 xml 中,其余部分(不包括 my.package.controller)在 applicationContext.xml 中?

或者我应该将所有带注释的课程安排在一个区域中,而将其他所有内容安排在另一个区域中?就像是:

my.package.spring.controller
my.package.spring.dao
my.package.spring.entity
my.package.spring.service
my.package.spring.util
my.package.notannotated
my.package.notannotated2

我正在使用 @Autowired 将日志记录添加到大多数(如果不是全部)类中,所以我不知道我会有任何不会被注释的类。

我讨厌陷入配置......我宁愿陷入代码,所以如果有人可以提供任何提示,我很乐意欢迎他们。

Thanks!


是的 - 在您的主要上下文中扫描除控制器之外的所有内容

 <context:component-scan base-package="my.package">
    <context:exclude-filter type="regex" expression="my\.package\.controller.*"/>
 </context:component-scan>

在您的 DispatcherServlet 上下文中只需扫描控制器包。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spring 3 中组织类以进行组件扫描的明智方法是什么? 的相关文章

随机推荐

  • Go:跟踪 POST 请求进度

    我正在 Go 中为 Linux 编写一个 ShareX 克隆 它通过 http POST 请求将文件和图像上传到文件共享服务 我目前正在使用 http Client 和 Do 发送我的请求 但我希望能够跟踪需要最多一分钟上传的较大文件的上传
  • 为什么 Scala 找不到 org.apache.commons.lang 包?

    我想用org apache commons lang NotImplementedException因为它似乎是 Java Scala 域中唯一的 NotImplementedException 实现 我记得我曾经在 Scala 2 8 1
  • NSTextField 像 safari 地址栏

    构建像 Safari 中那样的地址字段的最佳方法是什么 需要有可编辑的文本和确定的进度指示器背景 你可以直接子类化NSTextField并覆盖 drawRect 方法用某种颜色或渐变 或其他 来 填充 整个宽度的适当百分比以用于进度 如果我
  • 局部变量作用域的问题。怎么解决呢?

    我在尝试执行时收到以下错误statemet executeUpdate 在我的代码中 Local variable statement defined in an enclosing scope must be final or effec
  • 从 grails 2.3.8 2.4 升级时出现资源插件错误

    我正在关注docs尝试将我的项目从 2 3 8 升级到 2 4 但我遇到了这些错误 localhost startStop 1 ERROR resource ResourceProcessor Unable to load resource
  • 链接外部文件时列出属性的顺序是否正确?

    在 HTML 中声明外部文件 例如 css 或 js 时 是否存在放置链接属性的正确顺序 例如 or or 这有关系吗 同样的问题也适用于链接到外部 JavaScript 文件的属性 谢谢你的时间 不 属性顺序无关
  • CSS无限旋转动画

    我想通过 CSS 旋转我的加载图标 我有一个图标和以下代码 div div
  • COPY 命令:仅从 csv 复制特定列

    我有一个关于COPYPostgreSQL 中的命令 我有一个 CSV 文件 我只想将其中一些列值复制到我的 PostgreSQL 表中 是否有可能做到这一点 我熟悉使用COPY命令使用标题将 CSV 中的所有数据复制到表中以映射到列名称 但
  • OpenCV - 如何从 uint8_t 指针创建 Mat

    我有以下 C 代码 void foo const uint8 t data int height int width need to create a cv Mat from data which is a pointer to grays
  • Nunit-C#:通过编码运行特定测试

    我使用 Selenium 和 C 进行自动化 我想通过代码调用 NUnit 如下所示 CoreExtensions Host InitializeService TestPackage testPackage new TestPackage
  • 如何计算两个 WGS84 坐标之间的方位角(向北的角度)

    我有两个 WGS84 坐标 纬度和经度 以度为单位 这些点非常接近 例如相距仅一米 有没有一种简单的方法可以计算这些点之间的线的方位角 即向北的角度 天真的方法是假设一个笛卡尔坐标系 因为这些点非常接近 并只使用 sin a abs L2
  • 如何编写自己的复制和粘贴上下文菜单?

    我正在编写一个带有 EditText 驱动小部件的应用程序 我想创建自己的复制和粘贴菜单 要替换 EditText 上的 android 默认菜单 我应该做什么 只是覆盖长按 或者还有其他方法来实施吗 提前致谢 EditText 应该已经启
  • 在.Net Core中使用CSharpCodeProvider

    我有一些 C 代码 可以从 SOAP WSDL 和 Swagger 文档动态生成源代码 然后使用 CSharpCodeProvider 类的名为 CompileAssemblyFromSource 的方法对其进行编译 使用 Net 4 8
  • 如何在Windows 7中设置应用程序的任务栏图标

    如何在 PyQt4 中设置应用程序的任务栏图标 我尝试过setWindowIcon 它成功地将图标设置在主窗口的左上角 但它不会影响Windows 7任务栏中显示的图标 任务栏图标仍然是默认的Python pyw图标 这是我的代码 from
  • __POSIX_VISIBLE 正在破坏我在 cygwin 上的 pthreading

    我正在编译一个在 cygwin 上使用 pthreads 和 gcc 确切地说是 g 的项目 鉴于我一直在linux上开发这个 我从来没有遇到过任何问题 但现在 我无法编译使用某些 pthread 函数的代码 编译器抱怨这些函数未声明 我意
  • 如何在 Linux 上中断任意 TCP/IP 连接?

    是否有任何命令可用于中断某个程序的现有 TCP IP 连接 操作系统是否知道 TCP 连接中的任何内容 或者操作系统是否只看到本地套接字上的 TCP 传输 并且不知道哪个请求被发送到哪个套接字 例如 如果 Firefox 向某个服务器的端口
  • 如何创建具有两个键(键对、值)的 HashMap?

    我有一个二维整数数组 我希望将它们放入 HashMap 中 但我想根据数组索引访问 HashMap 中的元素 就像是 对于 A 2 5 map get 2 5 它返回与该键关联的值 但是如何创建带有一对键的 hashMap 呢 或者一般来说
  • 在 Linux 上使用 ncurses 时未定义的引用

    我正在尝试开始在 Linux 上使用 ncurses 开发程序 我什至无法编译 Hello World 示例 这是代码 include
  • Angular UI 中的 $dialog.messageBox() 在哪里?

    我找不到 dialogAngularUI 中的服务 我尝试探索一个简单的messageBox 使用以下命令创建确认对话框 modal 也找不到那个 有人可以建议我如何使用 AngularJS Angular UI 创建一个简单的对话框 比如
  • 在 Spring 3 中组织类以进行组件扫描的明智方法是什么?

    我已经开始使用 Spring 3 开发一个新项目 并且正在使用注释 我喜欢我可以连接我的类来注入依赖项 但我知道这是一个不好的做法context component scan从基础包开始 我正在使用一个DispatcherServlet它有