Spring IOC的常用注解

用于創(chuàng)建對象的

相當(dāng)于 <bean id="" class="">

@Component
作用:把資源讓 spring 來管理,相當(dāng)于在 xml 中配置一個(gè) bean。
屬性:value:指定bean 的 id,如果不指定value 屬性,默認(rèn) bean 的id 是當(dāng)前類的類名,首字母小寫。

@Controller @Service @Repository
他們?nèi)齻€(gè)注解都是針對一個(gè)的衍生注解,他們的作用及屬性都是一模一樣的,他們只不過是提供了更加明確的語義化。

@Controller:一般用于表現(xiàn)層的注解。
@Service:一般用于業(yè)務(wù)層的注解。
@Repository:一般用于持久層的注解。

用于注入數(shù)據(jù)的

相當(dāng)于: <property name="" ref=""> <property name="" value="">

@Autowired
作用:自動(dòng)按照類型注入。當(dāng)使用注解注入屬性時(shí),set 方法可以省略。它只能注入其他bean 類型。當(dāng)有多個(gè)類型匹配時(shí),使用要注入的對象變量名稱作為 bean 的 id,在 spring 容器查找,找到了也可以注入成功,找不到就報(bào)錯(cuò)。

@Qualifier
作用:在自動(dòng)按照類型注入的基礎(chǔ)之上,再按照 Bean 的 id 注入。它在給字段注入時(shí)不能獨(dú)立使用,必須和@Autowire 一起使用;但是給方法參數(shù)注入時(shí),可以獨(dú)立使用。
屬性:value:指定bean 的 id。

@Resource
作用:直接按照 Bean 的 id 注入。它也只能注入其他 bean 類型。
屬性:name:指定bean 的 id。

@Value
作用:注入基本數(shù)據(jù)類型和 String 類型數(shù)據(jù)的 。
屬性:value:用于指定值。

用于改變作用范圍的

相當(dāng)于:<bean id="" class="" scope="">

@Scope
作用:指定 bean 的作用范圍。
屬性:value:指定范圍的值。取值:singleton(單例),prototypere(多例),quest(請求),session(當(dāng)前服務(wù)器的session域),globalsession(全局服務(wù)器的session域)

和生命周期相關(guān)的

相當(dāng)于:<bean id=" " class=" " init-method=" " destroy-method="" />

@PostConstruct
作用:用于指定初始化方法。

@PreDestroy
作用:用于指定銷毀方法。

其它注解

@Configuration
作用:用于指定當(dāng)前類是一個(gè) spring 配置類,當(dāng)創(chuàng)建容器時(shí)會(huì)從該類上加載注解。獲取容器時(shí)需要使用AnnotationApplicationContext(有@Configuration 注解的類.class)。
屬性:value:用于指定配置類的字節(jié)碼

@ComponentScan
作用:用于指定 spring 在初始化容器時(shí)要掃描的包。作用和在spring 的 xml 配置文件中的:<context:component-scan base-package="com.xxx"/>是一樣的。
屬性:basePackages:用于指定要掃描的包。和該注解中的 value 屬性作用一樣。

@Bean
作用:該注解只能寫在方法上,表明使用此方法創(chuàng)建一個(gè)對象,并且放入 spring 容器。
屬性:name:給當(dāng)前@Bean注解方法創(chuàng)建的對象指定一個(gè)名稱(即 bean 的id)。

@PropertySource
作用:用于加載 .properties 文件中的配置。例如我們配置數(shù)據(jù)源時(shí),可以把連接數(shù)據(jù)庫的信息寫到properties 配置文件中,就可以使用此注解指定 properties 配置文件的位置。
屬性:value[]:用于指定properties 文件位置。如果是在類路徑下,需要寫上classpath:

@Import
作用:用于導(dǎo)入其他配置類,在引入其他配置類時(shí),可以不用再寫@Configuration 注解。當(dāng)然,寫上也沒問題。
屬性:value[]:用于指定其他配置類的字節(jié)碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容