type
status
date
slug
summary
tags
category
icon
password
ext
order
comment
分别是@Primary,@Autowired,@Qualifier,@Resource,@Inject,下面依次介绍
@Autowired
- @Autowired是Spring自带的注解,通过AutowiredAnnotationBeanPostProcessor类实现的依赖注入
- @Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier
- @Autowired有个属性为required,默认值为true,可以配置为false,如果配置为false之后,当没有找到相应bean的时候,系统不会抛错
- @Autowired可以作用在变量、setter方法、构造函数上
@Qualifier
- @Qualifier配合@Autowired,可以指定装配的bean名称
@Inject
- @Inject是JSR330规范中的注解,和@Autowired用法差不多
- @Inject可作用在变量、setter方法、构造函数上 ,并且@Qualifier,@Primary对它也同样有效
- @Inject使用需要导入javax.inject包
@Resource
- @Resource是JSR250规范中的注解,参数为bean的名称
@Primary
- @Primary当一个接口有多个实现类,你想让自动装配时优先选择某个实现类,在这个类上面加上该注解即可
常见注解
- @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
- @Scope注解 作用域
- @Lazy(true) 表示延迟初始化
- @Service用于标注业务层组件、
- @Controller用于标注控制层组件(如struts中的action)
- @Repository用于标注数据访问组件,即DAO组件。
- @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
- @Scope用于指定scope作用域的(用在类上)
- @PostConstruct用于指定初始化方法(用在方法上)
- @PreDestory用于指定销毁方法(用在方法上)
- @Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
- @DependsOn:定义Bean初始化及销毁时的顺序
- @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
- @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用
- @Autowired @Qualifier(“personDaoBean”) 存在多个实例配合使用
- 作者:Loneking
- 链接:https://loneking.cn/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/94
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。