@Autowired和@Resource是Spring框架中用于注入依賴的兩個注解,它們的作用是相同的,都可以用于注入對象的依賴關系。不過,它們在使用方式和注入的對象選擇上有一些區別。
@Resource是JavaEE提供的注解,它是按照JavaEE規范定義的,Spring對它進行了支持。它可以通過名稱和類型進行注入,不支持字段注入。
@Resource默認按照名稱進行匹配,如果找不到匹配的Bean,則會嘗試按照類型進行匹配。如果有多個匹配的Bean存在,Spring會選擇與字段名稱或方法參數名稱匹配的Bean。如果還無法確定注入哪個Bean,則會拋出異常。
綜上所述,@Autowired和@Resource雖然功能上相似,但在使用方式和注入對象的選擇上有一些差異。一般情況下,推薦使用@Autowired注解,因為它是Spring自帶的注解,更加靈活,并且支持字段注入。