Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解
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标准注解的更多相关文章
- Spring IOC官方文档学习笔记(三)之依赖项
1.依赖注入 (1) 依赖注入(DI)的概念:某个bean的依赖项,由容器来负责注入维护,而非我们自己手动去维护,以此来达到bean之间解耦的目的,如下 //情况一:不使用依赖注入 public cl ...
- Spring IOC官方文档学习笔记(二)之Bean概述
1.Bean概述 (1) Spring IoC容器管理一个或多个bean,这些bean是根据我们所提供的配置元数据来创建的,在容器内部,BeanDefinition对象就代表了bean的配置元数据,它 ...
- Spring IOC官方文档学习笔记(一)之IOC容器概述
1.IOC容器简介 (1) org.springframework.beans 与 org.springframework.context 这两个包是Spring IOC容器的基础,在org.spri ...
- Spring 4 官方文档学习(十一)Web MVC 框架
介绍Spring Web MVC 框架 Spring Web MVC的特性 其他MVC实现的可插拔性 DispatcherServlet 在WebApplicationContext中的特殊的bean ...
- Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC
内容列表: 启用MVC Java config 或 MVC XML namespace 修改已提供的配置 类型转换和格式化 校验 拦截器 内容协商 View Controllers View Reso ...
- Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图
接前面的Spring 4 官方文档学习(十一)Web MVC 框架,那篇太长,故另起一篇. 针对web应用的所有的MVC框架,都会提供一种呈现views的方式.Spring提供了view resolv ...
- Spring 4 官方文档学习(十一)Web MVC 框架之编码式Servlet容器初始化
在Servlet 3.0+ 环境中,你可以编码式配置Servlet容器,用来代替或者结合 web.xml文件.下面是注册DispatcherServlet : import org.springfra ...
- Spring 4 官方文档学习(十一)Web MVC 框架之HTTP caching support
一个良好的HTTP缓存策略可以显著地增进web应用的性能和其客户端的体验.主要使用"Cache-Control" HTTP response header来完成,配合conditi ...
- Spring 4 官方文档学习(十一)Web MVC 框架之约定优于配置
当返回一个ModelAndView时,可以使用其addObject(Object obj)方法,此时的约定是: An x.y.User instance added will have the nam ...
- Spring 4 官方文档学习(十一)Web MVC 框架之异常处理
1.HandlerExceptionResolver Spring HandlerExceptionResolver的实现们会处理controller执行过程中发送的unexpected except ...
随机推荐
- Aspose.Cells设置单元格背景色不生效
Style.BackgroundColor property 获取或设置样式的背景颜色.public Color BackgroundColor { get; set; } 评论 如果要设置单元格的颜 ...
- 产生10个1-20以内的随机数,要求不能重复(集合)Java
public class Demo{ //产生10个1-20以内的随机数,要求不能重复 public static void main(String[] args){ //新建集合存放随机数 Set& ...
- (java 实现开箱即用基于 redis 的分布式锁
项目简介 lock 为 java 设计的分布式锁,开箱即用,纵享丝滑. 开源地址:https://github.com/houbb/lock 目的 开箱即用,支持注解式和过程式调用 基于 redis ...
- SQLMap入门——查询当前用户下的所有数据库
确定网站存在注入后,用于查询当前用户下的所有数据库 python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 --dbs
- 13-flask博客项目之restful api详解2-使用
13-flask博客项目之restful api详解1-概念 13-flask博客项目之restful api详解1-概念 Flask-RESTful学习网站 英文:https://flask-res ...
- Django框架:8、聚合查询、分组查询、F与Q查询、ORM查询优化、ORM事务操作、ORM常用字段类型、ORM常用字段参数
Django 数据库 目录 Django 数据库 一.聚合查询 二.分组查询 三.F查询与Q查询 1.F查询 2.Q查询 3.Q查询进阶操作 四.ORM查询优化 1.only与defer 五.ORM事 ...
- CH32V307以太网(芯片内部10M)-针对新固件的Lib库
沁恒的CH32V307网络库在前段时间做了一个更新,相对于以前的Lib,主要的功能没有什么特别大的变化,但是底层的一些操作仔细看的话,还是不少的区别的. 首先,官方提供的例程,工程结构以及头文件优一些 ...
- 关于asp.net mvc的控制器的依赖注入思考及对StructureMap依赖注入框架的简单实践笔记
写在前面: 依赖注入这个玩意很多人其实都接触过,但可能没有细究其中的原理. 比如Controller的构造函数中,只要你传入一些接口,应用自动就给你处理了创建的过程,无需你手动去new 一个实例并穿进 ...
- python模块(module)
目录 模块化(module)程序设计理念 模块和包概念的进化史 标准库模块(standard library) 为什么需要模块化编程 模块化编程的流 模块的 API 和功能描述要点 模块的创建和测试代 ...
- .NET周报【1月第1期 2023-01-06】
国内文章 [开源]基于.net6+gtksharp实现的Linux下的图形界面串口调试工具 https://www.cnblogs.com/flykai/p/17007554.html 由于公司的上位 ...