1.使用@Inject和@Named进行依赖注入

(1) Spring提供了对JSR 330标准注解的支持,因此我们也可以使用JSR 330标准注解来进行依赖注入,不过,在此之前,我们得先使用maven添加相关依赖,如下

<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>

(2) JSR 330标准注解提供了@Inject注解进行依赖注入,它的作用同@Autowired,我们可以将它用于变量,方法或构造函数参数上,如下

@Component
public class ExampleA { //使用@Inject注解,来进行依赖项的注入,它的作用跟@Autowired是完全一样的,只不过它是java提供的注解,Spring对其作了实现
@Inject
private ExampleB exampleB; private ExampleC exampleC; @Inject
public ExampleA(ExampleC exampleC) {
this.exampleC = exampleC;
}
}

(3) @Named注解的作用同@Qualifier注解,也是指定候选的bean的名称,排除其他依赖项的干扰

@Component
public class ExampleA { //使用@Named注解标识候选bean的名称,如果容器中存在多个ExampleB实例,则选择其中bean的名称为exampleB的那个bean进行注入
@Inject
@Named("exampleB")
private ExampleB exampleB;
}

2.@Named注解与@ManagedBean注解

(1) @Named注解与JSR 250中的注解@ManagedBean可以用来替换掉@Component注解,如下

//使用@Named注解定义一个bean,没错,@Named注解还可用在类上,用于声明一个bean,下面这个例子等同于@Component("aaa")
@Named("aaa")
public class ExampleA { } //此外,我们还可以用@ManagedBean注解来声明一个bean
@ManagedBean("bbb")
public class ExampleB { } //开启注解扫描,则Spring也会把被@Named注解与@ManagedBean注解标注的bean添加至容器中
@Configuration
@ComponentScan(basePackages = "cn.example.spring.boke")
public class Config { }

(2) @Component注解可以组合衍生出其他注解,如@Service,@Controller注解等,而@Named注解与@ManagedBean注解不具备这一功能

Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解的更多相关文章

  1. Spring IOC官方文档学习笔记(三)之依赖项

    1.依赖注入 (1) 依赖注入(DI)的概念:某个bean的依赖项,由容器来负责注入维护,而非我们自己手动去维护,以此来达到bean之间解耦的目的,如下 //情况一:不使用依赖注入 public cl ...

  2. Spring IOC官方文档学习笔记(二)之Bean概述

    1.Bean概述 (1) Spring IoC容器管理一个或多个bean,这些bean是根据我们所提供的配置元数据来创建的,在容器内部,BeanDefinition对象就代表了bean的配置元数据,它 ...

  3. Spring IOC官方文档学习笔记(一)之IOC容器概述

    1.IOC容器简介 (1) org.springframework.beans 与 org.springframework.context 这两个包是Spring IOC容器的基础,在org.spri ...

  4. Spring 4 官方文档学习(十一)Web MVC 框架

    介绍Spring Web MVC 框架 Spring Web MVC的特性 其他MVC实现的可插拔性 DispatcherServlet 在WebApplicationContext中的特殊的bean ...

  5. Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC

    内容列表: 启用MVC Java config 或 MVC XML namespace 修改已提供的配置 类型转换和格式化 校验 拦截器 内容协商 View Controllers View Reso ...

  6. Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图

    接前面的Spring 4 官方文档学习(十一)Web MVC 框架,那篇太长,故另起一篇. 针对web应用的所有的MVC框架,都会提供一种呈现views的方式.Spring提供了view resolv ...

  7. Spring 4 官方文档学习(十一)Web MVC 框架之编码式Servlet容器初始化

    在Servlet 3.0+ 环境中,你可以编码式配置Servlet容器,用来代替或者结合 web.xml文件.下面是注册DispatcherServlet : import org.springfra ...

  8. Spring 4 官方文档学习(十一)Web MVC 框架之HTTP caching support

    一个良好的HTTP缓存策略可以显著地增进web应用的性能和其客户端的体验.主要使用"Cache-Control" HTTP response header来完成,配合conditi ...

  9. Spring 4 官方文档学习(十一)Web MVC 框架之约定优于配置

    当返回一个ModelAndView时,可以使用其addObject(Object obj)方法,此时的约定是: An x.y.User instance added will have the nam ...

  10. Spring 4 官方文档学习(十一)Web MVC 框架之异常处理

    1.HandlerExceptionResolver Spring HandlerExceptionResolver的实现们会处理controller执行过程中发送的unexpected except ...

随机推荐

  1. day21-web开发会话技术03

    WEB开发会话技术03 10.问题引出 问题引出 不同的用户登录网站后,不管该用户浏览网站的哪个页面,都可以显示登录人的名字,还可以随时去查看自己购物车中的商品,这是如何实现的呢? 也就是说,一个用户 ...

  2. ArcEngine 释放对象

    释放对象 例如IFeatureCursor,IFeatureClass等 ESRI.ArcGIS.ADF.ComReleaser.ReleaseCOMObject(myFeatureCursor); ...

  3. 教你用Python制作BMI计算器

    案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用Python相关知识,做一个BMI计算器的案例.你可以通过控制台的提示信息,输入身高和体重,注意单位,系统会自动计算出BMI ...

  4. 为什么总是应该考虑给定 List 的初始大小

    在 .Net 技术中,使用 List<> 来存储数据是很常见的.List<> 是一个可以动态增长的泛型集合类型,可以存储任何类型的数据. 但是,在实际使用中,很多人并不注意给定 ...

  5. os与sys模块,json模块

    一.os模块(重要) os模块主要与操作系统打交道 1.创建目录(文件夹) import os os.mkdir(r'a1') # 在执行文件所在的路径下创建单级目录a1 os.mkdir(r'a2\ ...

  6. vue实现移动端左右菜单双向联动效果

    话不多说,上demo <template> <div id="app"> <header>左右列表双向联动</header> < ...

  7. 重学c#系列—— 反射深入一点点[三十三]

    前言 在上一章中介绍了什么是反射: https://www.cnblogs.com/aoximin/p/16440966.html 正文 上一节讲述反射的基本原理和为什么要用反射,还用反射的优缺点这些 ...

  8. [编程基础] Python装饰器入门总结

    Python装饰器教程展示了如何在Python中使用装饰器基本功能. 文章目录 1 使用教程 1.1 Python装饰器简单示例 1.2 带@符号的Python装饰器 1.3 用参数修饰函数 1.4 ...

  9. dfs学习笔记

    题目链接 可以通过参考一道例题来加深对dfs的认知和学习 题意描述 按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数 字序列中不允许出现重复的数字. 输出格式 ...

  10. 微服务框架——SpringBoot

    SpringBoot 1.创建Boot项目的两种方式 1.1通过spring网站创建 进入Spring Initializr 选择填写对应配置,打包 将zip格式的压缩包解压,并导入该项目 1.2 通 ...