前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >@Autowired和@Resource的区别

@Autowired和@Resource的区别

作者头像
陈灬大灬海
发布2018-09-12 15:35:06
4.3K0
发布2018-09-12 15:35:06
举报
文章被收录于专栏:面朝大海春暖花开

都知道这两个注解可以实现bean的注入

@Autowired 这个是spring的注解    org.springframework.beans.factory.annotation.Autowired

@Resource 这属于java自带的注解   javax.annotation.Resource

@Autowired默认是按照类型来注入的,需要按名字注入的话可以跟@Qualifier搭配使用

@Resource是按照里面的name属性来注入的

上代码吧,更有区分性

针对于面向接口编程的话,一个接口一个实现类是没啥区分性的。

倘若两个实现类,你不指定的话,会报这个错

org.springframework.beans.factory.BeanCreationException bean创建失败

expected single matching bean but found 2: personServiceImpl1,personServiceImpl2

可以写一个实例 一个service接口,两个serviceImpl实现类

代码语言:javascript
复制
public interface PersonService {public List<Person> listPerson();
}
代码语言:javascript
复制
@Service
public class PersonServiceImpl1 implements PersonService{
    @Autowired
    private PersonMapper mapper;

    public List<Person> listPerson() {
        System.out.println("PersonServiceImpl1.java");
        return mapper.listPerson();
    }
}
代码语言:javascript
复制
@Service
public class PersonServiceImpl2 implements PersonService{
    @Autowired
    private PersonMapper mapper;

    public List<Person> listPerson() {
        System.out.println("PersonServiceImpl2.java");
        return mapper.listPerson();
    }
}

之后写一个controller层来进行注入调用

代码语言:javascript
复制
@Controller
public class PersonController {
    @Autowired
    @Qualifier("personServiceImpl1")
    private PersonService service;
    
    @Resource(name="personServiceImpl2")
    private PersonService service2;
    
    @RequestMapping("listPerson")
    @ResponseBody
    public void listPerson(){
        List<Person> list = service.listPerson();
        System.out.println(list);
    }
    
    @RequestMapping("listPerson2")
    @ResponseBody
    public void listPerson2(){
        List<Person> list = service2.listPerson();
        System.out.println(list);
    }
}

实例简单明了,一看就懂

小白入手。。。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档