Springboot 注解 @Resource

作用

和@Autowired注解类似,也是用来注入依赖对象的,spring容器会对bean中所有的字段、方法进行遍历,标注有@Resouce注解的,都会进行注入。@Autowired是在javax中定义的注解,并不是spring中定义的注解。
查找方式:@Resource是先到容器按照名字查找,同一名字只有一个则直接注入,同名不同类时则再按照类型查找。
使用范围:任何类型、字段、方法

定义

@Target({TYPE, FIELD, METHOD}) 
@Retention(RUNTIME) 
public @interface Resource { 
  String name() default "";
  ..其他不常用的参数省略 
}

使用

1、用于字段

@Component 
public class Service2 { 
 
  @Resource 
  private Service1 service1;
  
}

2、用于方法

@Component
public class Service {

    private Service1 service1;

    @Resource
    public void setService1(Service1 service1){
        this.service1 = service1;
    }
}

3、用于Collection、Map中

1、注入到Collection中,被注入的类型为Collection类型或者Collection子接口类型,注意必须是接口类型

Collection<IService> 
List<IService> 
Set<IService>

2、注入到Map中,被注入的类型为Map类型或者Map子接口类型,注意必须是接口类型

Map<String,IService>

下面分别先定义一个接口,两个接口的实现类

public interface IService {
}
@Component 
public class Service { 

  @Resource 
  private List<IService> services;  //@1
  
  @Resource 
  private Map<String, IService> serviceMap;  //@2
  
}

原创文章,作者:jiafegn,如若转载,请注明出处:https://www.techlearn.cn/archives/264

Previous 2022年9月9日
Next 2022年9月14日

相关推荐

  • Springboot 注解 @Primary

    作用 在注入依赖的过程中,当有多个候选者的时候,可以指定哪个候选者为主要的候选者。可以用在类上或者方法上面。通常定义bean常见的有2种方式:1、在类上标注@Component注解…

    springboot 2022年9月26日
    238
  • SpringBoot 缓存 – jetcache

    简介 JetCache是一个基于Java的缓存系统封装,提供统一的API和强大的注解来简化缓存的使用。原生支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操…

    springboot 2023年4月23日
    337
  • SpringBoot 打包

    SpringBoot 项目部署到服务器常见的方式就是,打包成 jar 包,通过 nohup java -jar 命令去运行项目,这也是官方推荐的一种方式。 导入依赖 打包 设置打包…

    springboot 2023年4月5日
    148
  • SpringBoot拦截器

    简介 拦截器可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能。 使用步骤 在SpringBoot中使用拦截器功能通常需要以下3步:…

    springboot 2023年4月29日
    123
  • SpringBoot 整合Mybatis

    简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBat…

    2024年8月28日
    309
  • SpringBoot 缓存 – Redis

    引入依赖 缓存配置 启用缓存 修改项目启动类,增加注解@EnableCaching,开启缓存功能,如下: 配置缓存类 新建Redis缓存配置类RedisConfig,如下: 添加缓…

    2023年4月23日
    161
  • SpringBoot 分布式定时任务-Quartz

    简介 Quartz是完全由Java开发的一个开源的作业调度框架。在业务系统中,主要用于做分布式定时任务。Spring本身提供的@Schedule只能实现一些相对简单的单机定时任务,…

    springboot 2023年12月17日
    371
  • springboot 注解 @ComponentScan

    作用 @ComponentScan用于批量注册bean,这个注解会让spring去扫描某些包及其子包中所有的类,然后将满足一定条件的类作为bean 注册到spring容器中。主要使…

    springboot 2022年11月8日
    219
  • SpringBoot 单元测试

    简介 Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库,在 Spring Boot 2.2.0 版本之前,spring-boot-starter…

    springboot 2023年4月2日
    242
  • SpringBoot 缓存

    简介 缓存主要是为了提高数据的读取速度。 因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大…

    springboot 2023年4月23日
    133