Spring學(xué)習(xí)筆記

spring 核心特性:依賴注入和AOP

依賴注入:在創(chuàng)建對象的時候,系統(tǒng)會協(xié)調(diào)設(shè)定這個對象所依賴的第三方組件,對象無需關(guān)注和管理第三方組件。

AOP:面向切面編程,為了系統(tǒng)各項互相協(xié)調(diào)的服務(wù)松耦合。例如事務(wù)管理,日志管理,安全管理等。

Spring?容器:beanFactory?應(yīng)用上下文Context。

應(yīng)用上下文Context:

AnnotationConfigApplicationContext 基于java的配置類中加載Spring應(yīng)用的上下文

AnnotationConfigWebApplicationContext 基于java的配置類中加載Spring Web應(yīng)用的上下文

ClassPathXmlApplicationContext 從類路徑加載xml的spring上下文

XmlWebApplicationContext 從web應(yīng)用下加載xml的Spring上下文

裝配Bean:

自動化配置:java配置類使用注解@ComponentScan,如果是xml實現(xiàn)上下文,使用標(biāo)簽<context:component-scan></context:component-scan>,先開啟自動化掃描包下面的類。相關(guān)注解@Component,@Service等注解

基于java的顯示配置:主要是使用@Bean注解

基于xml的顯示配置:主要是使用<bean class="com.xxx.xxx"></bean>

Bean的生命周期:

1. 實例化bean

2. 注入bean相關(guān)引用

3. 如果實現(xiàn)了beanNameAware接口,調(diào)用setBeanName方法

4. 如果實現(xiàn)了beanFactoryAware接口,調(diào)用setBeanFactory方法

5. 如果實現(xiàn)了ApplicationContextAware接口,調(diào)用setApplicationContext方法

6. 如果實現(xiàn)了beanPostProcessor接口,調(diào)用postProcessorBeforeXXXX方法

7. 如果實現(xiàn)了initializingBean接口或者配置了<init-methid>標(biāo)簽,調(diào)用afterPropertieSet方法

8. 如果實現(xiàn)了beanPostProcessor接口,調(diào)用postProcessorAfterXXXX方法

9. 這個時候,該bean可以為應(yīng)用使用了。

10.如果實現(xiàn)了disposableBean接口或者配置了<destory-method>標(biāo)簽,調(diào)用destory方法

AOP理解:面向切面編程

通知(advice):前置通知,后置通知,返回通知,異常通知,環(huán)繞通知

連接點(diǎn)(Join point):應(yīng)用中可以 應(yīng)用通知的時機(jī)都叫連接點(diǎn)。

切點(diǎn)(pointcut):部分需要被通知的連接點(diǎn)。

切面(aspect):通知 + 切點(diǎn) 構(gòu)成切面。

引入(introduction):現(xiàn)有類中添加新的方法和屬性,使現(xiàn)有類有新的行為和狀態(tài)。

織入(waving):把切面應(yīng)用到目標(biāo)對象,并創(chuàng)建新的代理對象的過程。織入時機(jī):編譯期(aspectJ的編譯器),類加載期(AspectJ 5),運(yùn)行期(Spring AOP)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,886評論 18 139
  • 一、Spring框架 1.1 Spring框架是什么 Spring是一種容器框架,用于配置各個組件(bean)并且...
    Jane_Static閱讀 404評論 0 0
  • 本章內(nèi)容: 面向切面編程的基本原理 通過POJO創(chuàng)建切面 使用@AspectJ注解 為AspectJ切面注入依賴 ...
    謝隨安閱讀 3,188評論 0 9
  • 你不用心看這個世界, 這個世界哪會看你。 這世界真的看你, 你怎能忍心閉眼不看。 你不用心看這個世界, 這個世界哪...
    花椒粒兒范范閱讀 196評論 14 6
  • 在社會行走久了,很想知道有沒有一個行走江湖的萬能公式? 是 愛因斯坦的E=MC2 還是? 數(shù)理頭腦不好的我,其實只...
    繁花似錦微笑以對閱讀 504評論 2 7