You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

恳请以通俗易懂的方式解释@Resource注解的含义

直白解释@Resource注解

嘿,太懂你查资料越看越头大的感觉了!我用最接地气的话给你把@Resource掰明白:

核心作用:自动“递东西”的贴心助手

你可以把它当成一个不用发工资的助手——当你的代码里需要用到某个对象(比如做咖啡需要牛奶),不用你自己手动去创建这个对象(不用写new Milk()),@Resource会让框架自动把现成的、配置好的那个对象“递”到你的代码里。

举个实际代码例子

假设你有个做咖啡的类,需要用到牛奶对象:

// 牛奶类,已经被框架管理起来了(比如配置成了Bean)
public class Milk {
    public void add() {
        System.out.println("加了一勺牛奶");
    }
}

// 咖啡机类
public class CoffeeMaker {
    // 加了@Resource,就相当于告诉框架:"我需要一个Milk对象,帮我找一个给我!"
    @Resource
    private Milk milk;

    public void makeCoffee() {
        milk.add(); // 直接用,不用自己new
        System.out.println("咖啡做好啦");
    }
}

它怎么找你要的对象?

@Resource找对象有个固定优先级:

  • 第一步:按名字找:如果你的变量名是milk,它就去框架里找名字叫milk的对象(比如配置Bean时指定的name是milk)
  • 第二步:按类型找:如果按名字找不到,它就找所有类型是Milk的对象。要是只有一个符合的,就直接用;要是有多个同类型的对象(比如有WholeMilk、SkimMilk都继承自Milk),这时候就得指定名字,比如@Resource(name = "wholeMilk"),明确告诉它你要哪一个。

和@Autowired的小区别(简单提一嘴)

你可能还见过@Autowired,它默认是先按类型找,而@Resource默认先按名字找——这是最核心的区别,不用记太复杂,知道就行。

总结一下:@Resource就是帮你省掉手动创建依赖对象的麻烦,让框架自动给你匹配好需要的对象,写代码的时候更省心!

内容的提问来源于stack exchange,提问作者LM10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:34:33