注入和资源以及自动装配注释

2024-02-18

有什么区别@Inject and @Resource and @Autowired注释?

我们什么时候应该使用它们?


@Inject、@Autowire、@Resource 之间的区别?

@自动连线:spring propriety 注解(与 @Inject 和 @Resource 相反)按类型注入资源,即通过带注释的字段或承包商的接口的类。如果我们几乎没有接口或子类的实现,我们可以使用 @Qualifier 注释来缩小选择范围以避免歧义。对于后备匹配,bean 名称被视为默认限定符值。尽管您可以使用此约定按名称引用特定的 bean,但 @Autowired 从根本上讲是关于带有可选语义限定符的类型驱动注入。

@Inject:基于 JSR-330(Java 依赖注入)的注释标识可注入的构造函数、方法和字段。该注释几乎完全替代了 Spring 的 @Autowired 注释。因此,您可以选择使用 @Inject,而不是使用 Spring 特定的 @Autowired 注释。 @Autowired 和 @Inject 之间的区别之一是 @Inject 没有必需的字段,因此如果我们找不到合适的对象来注入,它将失败,而 @Autowired 可以使用 required=false 并允许可为空的字段(仅如果需要的话!)。 @Inject 注解的优点是,您可以要求 @Inject 注入 Provider,而不是直接注入引用。除其他功能外,Provider 接口还支持 bean 引用的延迟注入和 bean 的多个实例的注入。 如果我们几乎没有接口或子类的实现,我们可以使用 @Named 注释来缩小选择范围以避免歧义。 @Named 注解的工作方式很像 Spring 的 @Qualifier

@资源:基于 JSR-250 的注释。 @Resource 与 @Autowired 和 @Inject 非常相似,但主要区别在于查找要注入的所需 bean 所采用的执行路径。 @Resource 将首先按名称缩小搜索范围,然后按类型,最后按限定符缩小搜索范围(如果按名称找到匹配项,则忽略)。 @Autowired 和 @Inject 将首先按类型缩小搜索范围,然后按限定符,最后按名称缩小搜索范围。

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

注入和资源以及自动装配注释 的相关文章

随机推荐

  • 获取 IIS 应用程序文件系统路径

    我安装了 IIS 7 0 并且有一个带有 svc 服务的 net 应用程序 我想在应用程序指向的虚拟目录中指向一个文件 请注意 我在应用程序中转换了虚拟目录 但是 当我尝试使用 net verse 中的通用 api 调用打开文件 并且不指定
  • 比较 UIColors 或 CGColor 或 CGColorSpace

    我在比较 UIColors 时遇到问题 我有一张图像 我已成功提取用户单击的图像上的颜色 现在我想将该颜色与其他颜色进行比较 但我得到了一些奇怪的结果 这是我尝试过的 CGColorRef pixelColor buttonImage co
  • WordPress 插件 + Composer?

    我正在制作使用一些第三方库的 WordPress 插件 使用 Composer for WordPress 插件是常见做法吗 如果可以使用它 那么我认为我应该提供所有 Composer 文件以及我的插件 因为我不想让人们手动运行compos
  • 在多维数组中搜索某些值

    我有一个以下格式的多维数组 0 id gt 1 type gt fish owner gt bob 1 id gt 2 type gt cat owner gt mary 2 id gt 3 type gt dog owner gt lar
  • 通过 GitHub API 访问链接的 SAML 身份

    我想使用 GitHub API 任何版本 获取组织中 GitHub 登录名和电子邮件之间的映射 我可以使用以下 GraphQL 查询获取组织成员帐户上的电子邮件 query organization login myorg members
  • 如果 SSIS 中的值为 NULL,则条件拆分失败

    我根据以下规则将完整外连接的结果传递给条件拆分和过滤记录 基本上两个表具有相同的架构 并且主键值相同 a If Primary key of Source is NULL b If Primary Key of Destination is
  • MySQL:按块检索大选择

    我已经选择了更多 7000 万行 我想将选定的数据保存到一个大的csv文件于win2012 R2 问 如何从 MySQL 中按块检索数据以获得更好的性能 因为当我尝试保存一个我得到的大选择时 内存不足错误 您可以尝试使用LIMIT特征 如果
  • 存储和检索 SHA-256 散列和加盐密码的正确方法

    这是我第一次尝试安全地存储密码 我想确保一切都正确完成 建议我将 SHA 256 哈希与 salt 一起使用 假设用户通过表单提交了密码 我们通过以下方式获取密码 password POST password 对 password 加盐并对
  • ASP.NET MVC 和 IIS 5

    让 ASP NET MVC 应用程序托管在 IIS 5 6 或 7 上运行的最佳方法是什么 当我尝试发布 ASP NET MVC 应用程序时 我收到的似乎只是 404 错误 我做了一些谷歌搜索并找到了一些解决方案 但看起来都不是超级优雅 而
  • 如何从 Jena API Eclipse 项目启动 Fuseki 服务器?

    您好 我也是语义 Web 域和 Apache Jena 环境的新手 这就是我发布此问题的原因 我有一个使用 Jena API 的项目 当我运行它时 它会在控制台中显示输出 我确实从命令行运行了 Fuseki 服务器 它作为本地服务器运行 我
  • 运行 crontab 时出现权限被拒绝错误[重复]

    这个问题在这里已经有答案了 我在文件夹 csv file 中创建了一个 r 脚本 marc Marc Linux csv file ls 8388 26580527145 csv csv file Rproj excel source wr
  • Spark Dataframes UPSERT 到 Postgres 表

    我正在使用 Apache Spark DataFrames 来连接两个数据源并将结果作为另一个 DataFrame 获取 我想将结果写入另一个 Postgres 表 我看到这个选项 myDataFrame write jdbc url ta
  • Postman - 使用密钥文件进行 JWT 身份验证

    我正在尝试使用 Postman 来测试在 Google Cloud Platform 上开发的 API API 端点后面的 App Engine 我有 JSON 格式的密钥文件 type service account project id
  • BlackBerry 是否支持其应用程序开发人员的演示/测试版?

    我有兴趣为 BlackBerry 设备开发应用程序 想知道他们是否支持应用程序开发人员的演示版或测试版概念 我的意思是能够将我的应用程序的测试版或演示版部署给有限 受限的受众 例如业务合作伙伴 客户 外部测试人员等 他们中没有任何内容测试和
  • ASP.NET MVC - 如何抛出类似于 StackOverflow 上的 404 页面

    我目前有一个继承自的 BaseController 类System Web Mvc Controller 在那堂课上我有HandleError将用户重定向到 500 哎呀 我们搞砸了 页面的属性 目前这正在按预期进行 这有效
  • 让标签参与控制选项卡

    我有继承自的自定义控件Label并且有ControlStyle Selectable set to true 当用户单击该控件时 该控件将获得焦点 但如果用户从另一个控件进行选项卡 则不会获得焦点 即使当我有一个仅由该类型的控件填充的表单时
  • Reactjs 光滑的幻灯片

    我正在使用reactjs制作一个非常简单的滑块reactstrap 引导程序 工作示例 https codesandbox io s compassionate brook fz5mm https codesandbox io s comp
  • 尝试找出从 Firestore 字典中删除元素的更好方法

    我在应用程序中使用 Firestore 并且有一个名为 投票 的地图字段 用于显示用户的赞成票或反对票 它看起来像这样 我想添加一个选项来从那里删除元素 这就是我现在得到的 getting the user s votes dictiona
  • 将光标后的文本移动到新行

    我是 Vim 新手 我在 OSX Snow Leopard 上使用 MacVim 我必须采取的最常见操作之一是将光标移动到新行 并将光标后面的文本移动到新行 我知道在正常或可视模式下按 o 会将光标移动到新行并切换模式以进行插入 我想做的是
  • 注入和资源以及自动装配注释

    有什么区别 Inject and Resource and Autowired注释 我们什么时候应该使用它们 Inject Autowire Resource 之间的区别 自动连线 spring propriety 注解 与 Inject