Spring真的不支持接口注入吗?

2024-03-29

我知道 Spring 不支持接口注入,而且我已经读过很多次了。

但今天,当我看到 Martin Fowler 写的一篇关于国际奥委会的文章时(link http://martinfowler.com/articles/injection.html#InterfaceInjection),看来在Spring中使用ApplicationContextAware有点类似于Interface注入。

当我们的 Spring bean 中需要 Spring 上下文引用时,我们将实现 ApplicationContextAware 并实现 setApplicationContext(ApplicationContext context) 方法,并且我们将在配置文件中包含该 bean。这与接口注入不一样吗?接口注入告诉 Spring 注入(或者)将上下文的引用传递到这个 bean 中?

或者我在这里遗漏了一些东西?感谢您提供任何信息!

玛尼坎塔


如果你的意思是接口注入正如维基百科上的定义 http://en.wikipedia.org/wiki/Dependency_injection#Types,spring 通过接口对 ResourceLoaders、ApplicationContexts、MessageSource 等提供开箱即用的支持资源加载器感知 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ResourceLoaderAware.html, 应用上下文感知 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ApplicationContextAware.html, 消息源感知 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/MessageSourceAware.html, 分别。

还可以通过注册一个新的接口和依赖项来扩展此机制Bean后处理器 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html.

Spring 参考手册explains http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-aware这种能力(以及何时应该(不)使用它)非常清楚。顺便说一句,我通常发现弹簧参考手册比“互联网上的某人”所说的更可靠。

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

Spring真的不支持接口注入吗? 的相关文章

  • 通过 ant 构建脚本将命令行参数传递给 Java

    运行以下命令时 ant targetname Dk1 v1 Dk2 v2 我想要将命令行参数传递给java like java whatever Dk1 v1 Dk2 v2 我需要从 Java 代码访问这些参数System getPrope
  • java中数字字符串间隔排序

    我正在与一些人一起上一个人课 其中有姓名 年龄范围等详细信息 年龄区间为 0 5 6 10 11 30 31 45 46 50 50 100 100 110 我正在上 Person 课name ageBand字符串间隔及其参数化构造函数 g
  • Java switch case 抛出 nullPointer 异常

    我有一个枚举声明如下 public enum Status REQ URL1 NOT URL2 GET URL3 String getURL Status String getURL this getURL getURL 我班上的一个领域
  • Spring Security“拒绝执行来自...的脚本”

    我正在 HTML 文件 thymeleaf 模板 中使用 Spring Security 和 Bootstrap 构建 Spring MVC 应用程序 Spring Security部分基于Spring Guide对于春季安全 http s
  • 在word文档的标题中添加图片时出现问题

    我正在Word文档的标题中添加图片 它显示图像的框架并显示 当前无法显示图像 如果我将文本添加到标题 它会显示文本 如果我在文档正文中添加图像 它也会显示图像 获取图像也是如此 它在标题上显示文本 但没有图像 我的支票快用完了 有人可以建议
  • 当我在选择 0 索引的情况下删除和添加时,Swing JList 冻结

    这是一个示例 您按下一个按钮 jList1 会重新填充从 a1 到 a1000 的项目 variable private List
  • 将分区扩展到另一级

    根据下图来自春季批量文档 http docs spring io spring batch reference html scalability html partitioning 主步骤被划分为六个从步骤 它们是主步骤的相同副本 我的问题
  • 0x0A 和 0x0D 之间的区别

    我正在研究蓝牙 我试图编写代码以在连接时继续监听输入流 我遇到了以下代码片段 int data mmInStream read if data 0x0A else if data 0x0D buffer new byte arr byte
  • 谷歌gson LinkedTreeMap类转换为myclass

    我知道这个问题以前已经被问过 由于我对java和android的新手技能 我一个多星期都无法解决这个问题 我和我的一位朋友正在开发一个 Android 项目 其中有一些类似的事情 最奇怪的部分是 只有当我从 Google Play 商店下载
  • JPA Criteria API 任意数量的联接/子查询

    我需要使用以下实体构建相交类型查询 为了清楚起见 减少了实体 Entity and other stuff public class Member Id private Long id private String name Entity
  • 什么触发了java垃圾收集器

    我对 Java 中垃圾收集的工作原理有点困惑 我知道当不再有对某个对象的实时引用时 该对象就有资格进行垃圾回收 但是如果它有对实时对象的引用怎么办 可以说我有一个节点集合 它们再次引用更多节点 List 1 gt Node a gt Nod
  • “该选择不能在任何服务器上运行”

    我一直在 Eclipse 中开发一个动态 Web 项目 我收到这个错误 该选择不能在任何服务器上运行 早些时候它工作得很好 但现在我收到了这个错误 我删除了服务器并再次添加 Project gt Right Click gt Propert
  • 如何处理MaxUploadSizeExceededException

    MaxUploadSizeExceededException当我上传的文件大小超过允许的最大值时 会出现异常 我想在出现此异常时显示错误消息 如验证错误消息 我该如何处理这个异常 以便在 Spring 3 中执行类似的操作 Thanks 这
  • JToolBar 放回 GridBagLayout 时出现 IllegalArgumentException

    为什么这段代码会抛出一个IllegalArgumentException当工具栏被拖离 GUI 然后关闭 将其返回到 GUI 时 我可以理解为什么在没有约束的情况下添加组件可能是不合适的 但在这种情况下 工具栏最初添加到面板 使用GridB
  • 如何使用放心发送Content-Type表单数据请求?

    我需要使用 Rest Assured 调用表单数据类型 API 这是我的代码 private Map
  • Java 中的引用变量里面有什么?

    我们知道对象引用变量保存表示访问对象的方式的位 它不保存对象本身 但保存诸如指针或地址之类的东西 我正在阅读 Head First Java 第 2 版 一书 书中写道 第 3 章第 54 页 在 Java 中我们并不真正知道什么是 在引用
  • GWT 和身份验证

    保护 GWT Tomcat 应用程序执行身份验证和授权的最佳策略是什么 有两种基本策略 确保入口点安全 确保远程服务的安全 确保入口点安全 最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html js 文件的访问
  • 在 WildFly 10 中添加 jar 作为部署

    有没有办法 我们可以将 jar 部署为库 部署WildFly 10就像我们可以做到的那样weblogic服务器 或者我们可以将 jar 放在服务器的任何文件夹中并将这些依赖项定义为provided 我得到了什么部署方式jars on Wil
  • 如何使用 GWT 2.4 在服务器端动态创建 UI

    我正在尝试使用 Google Web Toolkit v2 4 创建用户界面 由于多种原因 我需要在运行时指定服务器上接口的内容 我的意思不仅仅是按钮需要动态标签等 而是整个 UI 需要在运行时创建 我的大部分 UI 都可以指定为直接的 H
  • 如何将温莎城堡与 ASP.Net Web 表单一起使用?

    我正在尝试将 Windsor 的依赖注入连接到标准的 asp net Web 表单 我想我已经使用 HttpModule 和 CustomAttribute 代码如下所示 实现了这一点 尽管该解决方案似乎有点笨拙 并且想知道 Windsor

随机推荐

  • Kotlin 支持单子理解吗?

    就像 C 中的 LINQ Scala 中的理解一样 Kotlin 中有类似的东西吗 如果不支持 有计划吗 没有特殊的关键字 do for 因此不像其他语言那样直接翻译为嵌套的 flatMap 脱糖 但是一元理解可以通过协程来实现 来自箭头文
  • 如何用 str_replace() 替换所有出现的两个子字符串?

    目前我有这段代码 它将任何双空格替换为 br 它按预期工作 tr class td Garments td td str replace br br trim result garment type td tr 不过我想做另一个str re
  • Android - 将大量数据传递给在不同进程上运行的服务

    有没有可能的方法将大量数据传递到与主活动不同的进程上运行的Android服务中 要传递的数据是大约 5Mb 的字节数组 如前所述 我无法将数据保存到文件中进行传输 需要纯粹通过内存或任何其他不持久保存到文件 数据库等的方式进行传输 我尝试过
  • 如何使用 CSS 将两个箭头图像(赞成/反对)堆叠在一起?

    向上箭头 gif 和向下箭头 gif So it would look like so 如何创建 3 个 div 并使用 CSS 设计它们的样式 以便这些箭头位于顶部箭头位于底部箭头上方的位置 div class vote div clas
  • Python 脚本给出“:没有这样的文件或目录”

    我有几个 python 脚本 它们工作得很好 但如果我尝试从 bash 运行它 一个脚本 截至今天早上 开始给我这个错误 没有这样的文件或目录 我可以通过执行以下操作来运行 损坏 的脚本python script name py环顾四周后
  • .gitattributes 涂抹和清理过滤器作为存储库的一部分

    我的 git 存储库中有许多模板文件 它们以不同的速率变化 然后使用它们生成 HTML 页面 如果有人报告问题 我希望他们能够告诉我模板文件的哪个版本有问题 目前 我在更改日期时手动将日期输入到文件中 或者 好吧 我尝试这样做 大多数时候我
  • 如何在 Lua 中下载文件,但在运行时写入本地文件

    我正在尝试制作一个更新程序 以便当我的 Lua 应用程序过时时它将使用LuaSocket下载较新的 exe 文件 可以运行我的 Lua 代码 在这个更新程序中 我希望它显示到目前为止已下载的数量 但是 通过以下 HTTP 请求 它会阻止应用
  • 如何以编程方式检查 iOS 上的方向是否已锁定 - Swift

    有没有办法在旋转发生之前以编程方式检查 iPod 方向锁定是否已启用 例如 如果用户要单击按钮 我们是否可以检查方向锁定是否打开 以提醒他们在单击操作发生之前必须关闭方向锁定 目前还没有办法检测方向是否被锁定 您可以只添加应用程序中应支持的
  • 如何将新的键值对添加到现有对象中

    我有一个简单的功能 function pagination opt limit console log opt logs out this gt Object limit 2 layout getConversations if typeo
  • web.xml 中的 cvc-id.3 错误

    在 Eclipse 中为 SpringMVC Web 应用程序编辑 web xml 文件时 我收到此错误消息 cvc id 3 身份字段 约束 web app servlet 名称 唯一性 匹配元素 web app 但是这个 元素没有简单类
  • 确定 Windows 当前是否正在播放声音

    所以我对这个问题思考了一段时间 但我不知道解决这个问题的正确方法是什么 我想使用以下命令确定 Windows 是否在某个时间输出声音Powershell脚本 我可以确定音频驱动程序是否有错误 但我无法确定系统是否正在播放声音 我看了看 NE
  • ruby Date.today 和 DateTime.now 的日期错误

    我已经使用 RVM 安装了 ruby 1 8 6 p383 系统 ruby 是 1 9 1 p378 1 使用 ruby 1 8 时 我从 Date today 和 DateTime now 得到错误的日期 而 Time now 是正确的
  • 从 SVN 获取最后一个文件提交日期

    Subversion 菜鸟 所以请耐心等待 有没有办法从命令行获取文件的最后提交日期 svn info filename
  • Laravel 真的这么慢吗?

    我刚刚开始使用 Laravel 我几乎还没有编写任何代码 但我的页面加载需要将近一秒钟 当我的无框架应用程序和 NodeJS 应用程序花费约 2 毫秒时 这让我有点震惊 拉拉维尔在做什么 这不是正常行为 是吗 是否需要一些微调 Larave
  • 无法使用php在mysql中保存大文本

    query INSERT INTO ARTICLES TITLE BY IN POST VALUES title by in POST post 该代码能够保存小长度文本 但不能保存大文本 的数据类型为POST字段是长文本 另外 如果我通过
  • 使用 C# (telerik) 在 wpf 中自定义弹出窗口的设计

    我在按钮单击事件中显示一个弹出窗口 gt 我在该弹出窗口中保留了一个自定义用户控件 因此每当显示弹出窗口时 都会显示自定义用户控件 但现在我需要修改自定义控件 弹出窗口中当前的自定义控件如下所示 但我需要角落看起来像下面的图片 如何做到这一
  • Angular 4.3 HttpClient:拦截响应

    在有关新的文档中HttpClientModuleAngular 4 3的新版本中 拦截请求的机制解释得非常好 还提到了响应拦截器机制 但我找不到任何相关内容 有谁知道如何拦截响应以便在将正文消息发送到服务之前修改正文消息 Thanks 我最
  • 按关系属性排序 neo4j

    使用 Neo4j 1 9 3 我想创建一个音乐节目列表 在给定的节目中可能会表演三段 每件作品都有一个与之关联的作曲家 并且可能出现在许多不同的程序中 因此我无法在作品节点上放置序列号 我假设我可以创建该程序 其与每个部分的关系如下所示 p
  • Rails 4 加密 Cookie 重放攻击

    我最近升级到 Rails 4 并改用加密 cookie 作为会话存储 不幸的是 这似乎意味着重放攻击是可能的 即如果用户注销 任何 cookie 都不会失效 并且可以用于在没有用户 密码的情况下进行身份验证 据我所知 这是加密 cookie
  • Spring真的不支持接口注入吗?

    我知道 Spring 不支持接口注入 而且我已经读过很多次了 但今天 当我看到 Martin Fowler 写的一篇关于国际奥委会的文章时 link http martinfowler com articles injection html