spring學習大總結-----spring知識點總結概述

花了一段時間,將spring的基礎知識給整理完畢,在這裏做一下總結。

DI和AOP

spring最核心的兩個部分一個是DI(依賴注入)一個是AOP(面向切面編程)。

對於DI,自己理解的就是spring這個容器中,替你管理着一系列的類,前提是你需要將這些類交給spring容器進行管理,然後在你需要的時候,不是自己去定義,而是直接向spring容器索取,當spring容器知道你的需求之後,就會去它所管理的組件中進行查找,然後直接給你所需要的組件,所以,對於spring容器,離不開配置文件。

AOP ,面向切面編程,我所簡單的理解就是 在一個工作流程之中,在某一個點,在有些時候,我們需要執行一些特殊的代碼處理,但是這種情況是有時有,有時沒有,如果我們將代碼寫入到工作流中,則沒有辦法控制,什麼時候有,什麼時候沒有,於是,我們就想辦法將我們的這個代碼給整理出來,然後利用配置文件,將這個代碼,在某些特定時刻進行執行。就好比,如果我們需要處理,我們就在這個工作流中切出一個面,然後植入我們的代碼,進行執行。就好比一個流水線工作,我們在我們需要的地方切了一刀,然後植入我們的代碼,然後進行工作。

配置文件

spring可以說是最核心的東西就是配置文件,但是現在又有一種是基於註解的方式,那種方式更簡單靈活,建議使用註解方式。
spring配置文件主要是配置bean
spring配置文件也可以用來引入外部文件
在引入外部文件時,我們需要引入命名空間【context】。

Bean相關

在Spring的配置文件中,我們最多的就是配置bean,就是我們所說的類,也就是組件。
1、配置bean組件,即我們所說的類,有三種方式屬性注入,構造器注入,工廠方法注入第三種當時可以忘記,最主要的就是屬性注入和構造器注入
2、bean與bean之間的交互則是利用ref屬性進行關聯
3、要知道對於集合的注入方式,spring給我們內置了一些集合屬性,我們就是利用這些來注入我們的集合屬性。
4、對於bean的自動裝配問題,我們不建議重新配置使用,有時候用默認的就可以了,我們可以利用bean的autowire屬性進行設置是按照name裝配還是按照type裝配。
5、對於bean之間的關係有繼承和依賴。在繼承之中我們還可以設置屬性abstract爲 true, 這樣 Spring 將不會實例化這個 Bean。 【 類比於類與類之間的is a與 has a
6、 Bean 的作用域,在 Spring 中, 可以在 【bean】 元素的 scope 屬性裏設置。有五種形式的scope。分別是【singleton】【prototype 】【request】【session】【global session 】。
7、bean的生命週期,瞭解即可,還要知道有後置處理器的bean的生命週期
8、bean的配置方式,三種【通過全類名】【通過工廠方法】【通過FactoryBean】

SpEL

spel——spring表達式語言,用在配置文件中用來支持運行時查詢和操作對象圖,SpEL 爲 bean 的屬性進行動態賦值提供了便利。

基於註解配置bean

在spring基於註解的配置中,首先我們應該知道首先加入aop的jar包引入context命名空間
類四大註解:【Component】【Controller】【Service】【Respository】【Aspect】
屬性三大註解:【Autowired】【Resource】【Inject】{Autowired按byType自動注入,Resource默認按 byName自動注入}
方法註解:【Transaction】

AOP—–AspectJ

1、Aspectj專門產生動態代理的一個框架,spring的aop使用了這個動態代理,他也是Java 社區裏最完整最流行的 AOP 框架。
2、要讓spring支持AOP,需要導入AspectJ 類庫: aopalliance.jar、aspectj.weaver.jar 和 spring-aspects.jar,而且我們還要在配置文件中增加aop命名空間
3、要在 Spring IOC 容器中啓用 AspectJ 註解支持, 只要在 Bean 配置文件中定義一個空的 XML 元素 【aop:aspectj-autoproxy】

AOP——五大通知

【前置通知】【後置通知】【返回通知】【異常通知】【【環繞通知】尤其要注意【後置通知】和【返回通知】之間的細微區別。
在通知中我們用到了切入點表達式,還有就是利用@Pointcut用於聲明切入點達式,可以達到重用切入點表達式的效果,定義在方法上面。而利用註解【@Order】可以對切面進行優先級排序。也是在類上定義order

基於配置文件的通知最重要的就是【aop:config】【aop:pointcut:配置切點表達式】【aop:aspect:配置切面及通知】三個標籤。

JDBC的支持

最重要的是配置模板JdbcTemplate或者NamedParameterJdbcTemplate的bean。他們之間最大的差別就是對具名參數的支持。

對事務管理的支持

使用註解方式:
第一步:配置文件中添加對應的命名空間 tx,引入對應的約束。
第二步:配置文件中聲明式事務配置。
第三步:進行事務處理。
使用xml方式:
1.配置事務管理器 。
2.配置事務屬性 。
3.配置事務切入點,以及把事務切入點和事務屬性關聯起來。

其中我們最應該關注的是事務的傳播行爲propagation事務的隔離級別isolation

spring jar包分析

首先spring的日誌是基於【commons-logging】進行的,所以必須包含這個jar包。
【spring-aop】Spring的面向切面編程的實現jar
【spring-aspects】Spring提供的對AspectJ框架的整合。
【spring-beans】核心jar,配置bean用,Spring IOC的基礎實現。
【spring-context】核心jar,基礎IOC功能上提供擴展服務,此外還提供許多企業級服務的支持,有郵件服務、任務調度、JNDI定位,EJB集成、遠程訪問、緩存以及多種視圖層框架的支持
【spring-context-support】spring-context的擴展。
【spring-core】核心jar Spring 框架基本的核心工具類。Spring 其它組件要都要使用到這個包裏的類,是 其它組件的基本核心。
【spring-expression】Spring表達式語言spel。
【Spring tx】爲JDBC、Hibernate、JDO、JPA等提供的一致的聲明式和編程式事務管理。

===============================================================

【spring-instrument】 Spring對服務器的代理接口。
【spring-instrument-tomcat】 Spring對tomcat連接池的集成。
【spring-jdbc】Spring對JDBC 的簡單封裝。
【spring-jms】Spring爲簡化jms api的使用而做的簡單封裝。
【Spring oxm】Spring對於object/xml映射的支持,可以讓JAVA與XML之間來回切換
【Spring test】對JUNIT等測試框架的簡單封裝。

=============================

【Spring orm】整合第三方的orm實現。
【Spring web】包含Web應用開發時,用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF集成類、文件上傳的支持類、Filter類和大量工具輔助類。
【Spring webmvc】包含SpringMVC框架相關的所有類。包含國際化、標籤、Theme、視圖展現的FreeMarker、JasperReports、Tiles、Velocity、XSLT相關類。當然,如果你的應用使用了獨立的MVC框架,則無需這個JAR文件裏的任何類。
【Spring webmvc portlet】Spring MVC的增強。
關於jar的分析引自【http://blog.csdn.net/accountwcx/article/details/39234137
詳細介紹看【http://blog.csdn.net/weisong530624687/article/details/50888094

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章