@Inject 注解可以出现在三种类成员之前,表示该成员需要注入依赖项。按运行时的处理顺序这三种成员类型是:

(1)构造方法

(2)方法

(3)属性

在构造方法上使用 @Inject 时,其参数在运行时由配置好的IoC容器提供。比如,在下面的代码中,运行时调用MurmurMessage类的构造方法时,IoC 容器会注入其参数 Header 和Content 对象。

@Inject
public MurmurMessage(Header header, Content content)
{this.headr = header;this.content = content;
}

规范中规定向构造方法注入的参数数量是0个或多个,所以在不含参数的构造方法上使用 @Inject 注解也是合法的。

注意:因为JRE无法决定构造方法注入的优先级,所以规范中规定类中只能有一个构造方法带@Inject注解

也可以用@Inject注解方法,与构造方法一样,运行时可注入的参数数量为0个或多个。但使用参数注入的方法不能声明为抽象方法也不能声明其自身的类型参数。下面这段代码在set方法前使用@Inject,这是注入可选属性的常用技术。

@Inject
public void setContent(Content concent)
{this.content = content;
}

向方法中注入参数的技术对于服务类方法来说非常有用,其所需的资源可以作为参数注入,比如向查询数据的服务方法中注入数据访问对象(Dao)。

也可以直接在属性上注入(只要它们不是final),虽然这样做简单直接,但是不提倡这样做,因为这样做会让单元测试更加困难。直接注入的语法也很简单。

public class MurmurMessager
{@Injectprivate MurmurMessage murmurMessage;...
}

@Inject注解 (JSR330规范提供的注解(javax.inject.Inject),主要导入javax.inject包才能使用)

和@Autowired  (Spring本身替换的注解(org.springframework.beans.factory.annotation.Autowired),需要导入Spring相应的jar包才能使用) 作用基本等同,区别:

@Autowired注解有一个required属性,当指定required属性为false时,意味着在容器中找相应类型的bean,如果找不到则忽略,而不报错(这一条是两个注解所没有的功能)。由于@Inject注解没有属性,在加载所需bean失败时,会报错

@Inject 注解的使用相关推荐

  1. Spring :@Inject注解

    1.美图 2.概述 在Spring的环境下,@Inject和@Autowired是相同的. 参考:SpringBoot: 注解@Autowired 3.源码

  2. Spring注解驱动开发学习总结8:自动装配注解@Autowire、@Resource、@Inject

    Spring注解驱动开发学习总结8:自动装配注解@Autowire.@Resource.@Inject 1.自动装配@Autowire.@Resource.@Inject 1.1 构建bookDao ...

  3. Wiring in Spring: @Autowired, @Resource and @Inject 三种注解实现依赖注入

    原文链接:Wiring in Spring: @Autowired, @Resource and @Inject 1. Overview 概述 In this Spring Framework tut ...

  4. @autowired注解_品Spring:对@Autowired和@Value注解的处理方法(文末附spring系列资源合集)...

    作者:编程新说李新杰 出自:微信公众号"编程新说" 原文:品Spring:对@Autowired和@Value注解的处理方法 在Spring中能够完成依赖注入的注解有JavaSE提 ...

  5. Android注解使用之Dagger2实现项目依赖关系解耦

    Dagger2 一句话:一款快速的注解框架,应用于Android.Java,由 Google 开发和维护,是 Square 的 Dagger 项目的分支. gitHub:https://github. ...

  6. spring beans源码解读之--Bean的注解(annotation)

    随着spring注解的引入,越来越多的开发者开始使用注解,这篇文章将对注解的机制进行串联式的讲解,不求深入透彻,但求串起spring beans注解的珍珠,展示给大家. 1. spring beans ...

  7. Spring-基于注解的配置[02自动装载bean]

    使用Autowired进行自动注入 实例 使用Auotwired的required属性 实例 使用Qualifier指定注入Bean的名称 实例 对类方法进行标注 实例 小结 对集合类进行标注 实例 ...

  8. Spring配置形式之基于注解的方式

    在classpath中扫描组件 组件扫描(component scanning): Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件. 特定组件包括: @Comp ...

  9. Spring5参考指南:基于注解的容器配置

    文章目录 @Required @Autowired @primary @Qualifier 泛型 @Resource @PostConstruct和@PreDestroy Spring的容器配置可以有 ...

最新文章

  1. 美观实用!Star 过万,用 Python 做交互式图形的这款工具火了!
  2. 2017.4.2号总结
  3. #3864. Hero meet devil dp套dp + 状压 + 状态机
  4. 商标45类分类表明细表_2019版注册商标分类表,商标注册45类范围明细
  5. exchange实现外部邮件收发的两种方法
  6. 初学C#和MVC的一些心得,弯路,总结,还有教训(4)--Cache 关于创建多个缓存实例
  7. Skype for Business 2015全新部署_07.前端安装02
  8. 分布式系统面试题:分布式事务解决方案?
  9. 酷播智能缓冲服务器,酷播服务器
  10. 2018杭州云栖大会主要演讲:新杭州故事,平头哥与新制造
  11. 推荐一款博客备份工具!
  12. 台式电脑点关闭计算机关不了,台式电脑关机关不了怎么办
  13. 社区发现算法中模块化度量值Q(Modularity)的计算
  14. java第一部分学习笔记
  15. Centos7下安装部署Zabbix-server 3.4
  16. 为什么要与MCN签约
  17. 头脑风暴-移动搜索和传统搜索的不同之处
  18. windows优化_?windows系统优化
  19. 汉江师范数学与计算机科学院宿舍,汉江师范学院宿舍条件,宿舍环境图片(10篇)...
  20. 通过手机App控制RGB调节灯带的亮度

热门文章

  1. linux下javac编译.java文件_Linux下使用javac编译
  2. 什么是磁盘阵列 磁盘阵列
  3. 2021消防设施操作员(初级)岗位考试模拟题库应急疏散逃生知识部分
  4. 使用SqlConnection.connectionString连接数据库
  5. (P9)awk:什么是awk,awk简单用法,awk脚本语法,awk执行过程
  6. 逆向经验 + 逆向工具
  7. 一名普通cs本科生的自述—【大学到底怎么过才值?】
  8. 怎样把几个PDF文档合并一个文件?
  9. python Graphillion简介
  10. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxxxx