您的位置:首页 > 编程语言 > Java开发

关于spring注解中@Autowired、@Resource、@Qualifier 的使用场景以及区别介绍

2018-06-02 21:16 549 查看

      首先可以确定,@Autowired和@Resource 这两个注解都是可以用来实现Bean的依赖注入,@Qualifier注解需结合@Autowired注解一起使用。

        一、@Resource  注解有两个属性,name和type。

       如果没有指定name和type,那么将在容器中查找与属性名称相同的bean实现依赖注入,如果没找到,则通过属性类型查询容器中对应的bean。

       指定name值,将通过name值查询容器中对应的bean,没找到,服务启动抛异常。

       指定type值,将通过type值查询容器中对应的bean,没找到,服务启动抛异常。

       同时指定name和type值,将通过name和type值查询容器中对应的bean,没找到,服务启动抛异常。


      二、@Autowired 按照类型进行装配

      如果没找到,服务启动抛异常。可指定required属性为false,则允许装配不成功,服务可正常启动。

      如果接口由多个实现,根据业务想要注入某个指定Bean,可结合@Qqualifier注解同时使用,@Qqualifier可制定容器中Bean的名称。如下:

      @Autowired

      @Qualifier(name="businessDao")

       private BusinessDao businessDao;

        另外,@Resource是J2EE提供的注解,@Autowired和@Qualifier 由spring提供。如果系统想减少spring依赖,项目可以统一使用@Resource注解。

       


阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: