@虽然Autowired的功能非常强大,但它也有一些缺点。例如,它与弹簧强耦合。如果它被其他框架(如jfinal)替换,该函数将失败。@resource由jsr-250提供,jsr-250是Java标准,大多数框架都支持它。
此外,在某些场景中,@Autowired无法满足要求,但@resource可以解决问题。
关注@Autowired和@resource之间的区别。
- @默认情况下,Autowired按类型自动组装,而默认情况下,@resource按名称自动组装。
- @Autowired仅包含一个参数:required,用于指示是否启用自动准入。默认值为true。@resource包含七个参数,其中最重要的两个参数是name和type。
- @如果Autowired想要使用byname,它需要同时使用@qualifier。如果@resource指定名称,则自动组装将使用byname;如果指定了类型,则bytype将用于自动装配。
- @Autowired可用于构造函数、方法、参数、成员变量和注释,而@resource可用于类、成员变量和方法。
- @Autowired是spring定义的注释,@resource是jsr-250定义的注释。
此外,它们的装配顺序也不同。
@Autowired的组装顺序如下: