spring --理解

學習完了spring,從新梳理下。java

###1.spring是什麼?spring有哪些主要模塊?
spring是java企業級開源框架,它能簡化javaee開發。
1.(Core Container)核心容器
beans、core、context、spel(spring表達式)。對應的jar包是
spring-beans、spring-core、spring-context、spring-context-support、spring-expression。 spring-core和spring-beans構成了框架最基礎的部分,包括控制反轉和依賴注入。
spring-context提供了applicationContext接口,spring-context-support提供集成三方庫(如定時器Quartz)。 spring-expression提供了一種強大的表達式語言,能夠在運行時查詢和操做對象。
2.Web
web(web、webmvc)、servlet、spring-webmvc-portlet(spring本身寫的一個mvc框架)、websocket(消息推送用)
spring-web 提供了應用web的基本特性,好比文件上傳等。spring-mvc包含了spring的mvc和rest web service實現。
3.數據訪問/集成
jdbc、transaction、orm/oxm/jms
spring-jdbc完成對數據庫的訪問操做,spring-tx是事務。
4.aop和aspect
spring-aop提供了一個面向切面編程的實現,例如:容許開發者定義方法攔截器和切入點,應用場合:日誌系統、緩存、攔截操做。spring-aspect能夠方便的將面向切面的功能集成到ide中。
5.messageing與instrumentation
spring-message:發送消息,spring-instrument提供了類設備支持與加載器實現。web

###2.使用spring框架有什麼好處?
1.輕量:spring是輕量級的,佔用內存小,集成方便。
2.控制反轉:spring經過控制反轉實現了 低耦合。ioc將建立對象的職責從 應用程序代碼 整合到了ioc容器中。兩種方式:註解與xml配置。
3.面向切面編程:將業務邏輯與其餘常規服務分開。
4.事務管理:提供了一套完整的事務管理接口,能夠擴展,靈活使用。
5.MVC框架:很好的實現分層。
6.集成三方框架:spring提供了不少集成三方框架的接口,如集成mybatis等。spring

###3.解釋下ioc與di?
ioc:指的是控制反轉;di:指的是依賴注入。
spring中的spring-beans與spring-context構成了ioc容器基礎。
springbeans中的BeanFactory提供了一個配置機制,applicationContext接口繼承beanFactory接口。
ioc具體實例:
經過在xml文件中配置(或經過註解方式)相關的bean,而後在java業務層直接使用配置的bean,實現了業務與配置(初始化等工做)分離。數據庫

<bean id="test" class="com.xx.xx.test"></bean>

di具體實例:
在xml中(或java代碼中)配置bean的時候,須要給其屬性賦值,賦值有三種方式:
1.setter方法注入,即express

<property name="driverClassName" value="${driverClassName}"></property>

2.構造器方法注入,即編程

<constructor-arg name="" value=""></constructor-arg>

3.接口方式spring-mvc

###4.spring bean的生命週期?
在xx.xml中配置bean緩存

<bean id="userService" class="com.test.spring.service.impl.UserServiceImpl" 
		init-method="" destroy-method="" scope="" lazy-init="default"></bean>

spring中bean的生命週期從IOC容器日東開始建立,到ioc容器結束銷燬經歷了一系列過程。 ioc容器啓動的時候
1.建立bean,即生成一個bean實例
2.給bean設置,三種方式前面說過
注意,建立bean的時候還能夠設置以下屬性:
scope:默認是singleton,即ioc容器只會建立bean的惟一實例。
prototype:每次請求建立不一樣的bean實例。
能夠指定bean的init-method屬性與destory屬性來指定bean的建立與銷燬。websocket

###5.解釋下aop?
aop:面向切面編程,容許程序模塊化橫向切割關注點,即橫向 責任劃分,例如:日誌和事務管理。
aspect:切面,它將多個類的通用方法組裝成可重用的模塊,例如,日誌模塊既能夠稱做日誌的aop切面。
在spring aop中,切面經過帶有@aspect的註解類實現。
鏈接點,指的是程序的某個位置,在這個位置咱們能夠插入一個aop切面。
advice:通知,指的是在方法執行先後要執行的動做,包括:前置/後置/返回/異常/環繞通知。
point:切點,一個類擁有多個鏈接點(指能夠插入aop切面的點)。開始調用切面的時候叫作切點,簡單的理解爲在哪裏開始調用日誌、事務的地方。mybatis

相關文章
相關標籤/搜索