Spring中的@Autowired和@Resource注解怎么使用

发布时间:2023-05-06 16:21:37 作者:iii
来源:亿速云 阅读:254

本篇内容主要讲解“Spring中的@Autowired和@Resource注解怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring中的@Autowired和@Resource注解怎么使用”吧!

@Resource和@Autowired是Spring Framework中两种常用的注入方式,它们的作用是在Spring容器中自动装配Bean对象.

@Autowired

@Autowired是Spring Framework提供的注解,它也可以实现自动装配Bean对象.

@RestController
public class DemoController {
    /**
     * 下面两种@Autowired使用一种即可
     */
    @Autowired
    DemoService demoService;
    @Autowired
    public void setDemoService(DemoService demoService) {
        this.demoService = demoService;
    }
}

@Autowired注解按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false.如果我们想使用按照名称(byName)来装配,可以结合@Qualififier注解一起使用.如下:

@RestController
public class DemoController {
    @Autowired
    @Qualifier(value = "demoService")
    DemoService demoService;
}

如果存在多个同类型的Bean对象,可以使用@Primary来指定一个默认的Bean对象,如下:

@RestController
public class DemoController {
    @Autowired
    DemoService demoService;
}
public interface DemoService {}
@Service
@Primary
public class DemoServiceImpl implements DemoService {}
@Service
public class DemoServiceImpl1 implements DemoService {}

@Resource

@Resource默认按照byName自动注入,由JavaEE5提供.@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型,所以,如果要使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略.如果即不指定name也不指定type,这时将通过反射机制使用byName自动注入策略.

@RestController
public class DemoController {
    /**
     * 下面两种@Resource使用一种即可
     */
    @Resource
    DemoService demoService;
    @Resource
    public void setDemoService(DemoService demoService) {
        this.demoService = demoService;
    }
}

@Resource装配顺序:

总结

区别

应用场景

根据以上区别,我们可以根据具体情况选择使用@Resource或@Autowired.如果希望按照名称进行匹配,并且不需要支持@Primary注解,可以选择@Resource;如果希望按照类型进行匹配,并且需要支持@Primary注解,可以选择@Autowried.根据具体情况选择合适的注解来实现自动装配

到此,相信大家对“Spring中的@Autowired和@Resource注解怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 工厂方法在Spring框架中怎么运用
  2. Spring Retry重试怎么使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring @autowired @resource

上一篇:怎么用Ant Design编写登录和注册页面

下一篇:微服务之注册中心和配置中心Consul怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》