最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

七個Spring核心模塊詳解

 更新時間:2018年03月23日 10:49:08   作者:shao-hang  
這篇文章主要為大家詳細介紹了七個Spring的核心模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Spring的七個核心模塊,供大家參考,具體內(nèi)容如下

1、Spring core:核心容器

核心容器提供spring框架的基本功能。Spring以bean的方式組織和管理Java應(yīng)用中的各個組件及其關(guān)系。Spring使用BeanFactory來產(chǎn)生和管理Bean,它是工廠模式的實現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(IoC)模式將應(yīng)用的配置和依賴性規(guī)范與實際的應(yīng)用程序代碼分開。BeanFactory使用依賴注入的方式提供給組件依賴。主要實現(xiàn)控制反轉(zhuǎn)IoC和依賴注入DI、Bean配置以及加載。

2、Spring AOP:Spring面向切面編程

通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了Spring框架中。所以,可以很容易地使 Spring框架管理的任何對象支持 AOP。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。AOP把一個業(yè)務(wù)流程分成幾部分,例如權(quán)限檢查、業(yè)務(wù)處理、日志記錄,每個部分單獨處理,然后把它們組裝成完整的業(yè)務(wù)流程。每個部分被稱為切面或關(guān)注點。

AOP的實現(xiàn)原理為動態(tài)代理技術(shù),一共有兩種代理模式:

(1)ProxyFactoryBean代理工廠對象

Spring內(nèi)置代理類,引入一個中間層,能夠創(chuàng)建不同類型的對象,利用它可以實現(xiàn)任何形式的AOP。

(2)TransactionProxyFactoryBean事務(wù)代理工廠對象

常用在數(shù)據(jù)庫編程上,Spring利用TransactionProxyFactoryBean對事務(wù)進行管理,在指定方法前利用AOP連接數(shù)據(jù)庫并開啟事務(wù),然后在指定方法返回后利用AOP提交事務(wù)并斷開數(shù)據(jù)庫。

3、Spring context:Spring上下文

Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業(yè)服務(wù),如JNDI、EJB、電子郵件、國際化、校驗和調(diào)度功能。提供框架式Bean訪問方式,其他程序可以通過Context訪問Spring的Bean資源。

4、Spring DAO

DAO模塊主要目的是將持久層相關(guān)問題與一般的的業(yè)務(wù)規(guī)則和工作流隔離開來。Spring 中的DAO提供一致的方式訪問數(shù)據(jù)庫,不管采用何種持久化技術(shù),Spring都提供一致的編程模型。Spring還對不同的持久層技術(shù)提供一致的DAO方式的異常層次結(jié)構(gòu)。Spring的DAO模塊對JDBC進行了再封裝,隱藏了Connection、Statement、ResultSet等JDBC API,使DAO模塊直接繼承JdbcDaoSupport類。

5、Spring ORM(Object Relation Mapper)對象關(guān)系映射模塊

Spring 與所有的主要的ORM框架都集成的很好,包括hibernate、JDO實現(xiàn)、TopLink和IBatis SQL Map等。Spring為所有的這些框架提供了模板之類的輔助類,達成了一致的編程風(fēng)格。
Spring的ORM模塊對ORM框架如Hibernate等進行了封裝,Spring能夠管理、維護Hibernate,使用時可直接繼承HibernateDaoSupport類,該類內(nèi)置一個HibernateTemplate。Hibernate的配置也轉(zhuǎn)移到Spring配置文件中。

(注:ORM是通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù),ORM框架采用元數(shù)據(jù)來描述對象--關(guān)系映射細節(jié),元數(shù)據(jù)一般采用xml格式,并且存放在專門的對象--映射文件中)

6、Spring Web模塊

Web模塊建立在應(yīng)用程序上下文模塊之上,為基于Web的應(yīng)用程序提供了上下文。Web層使用Web層框架,可選的,可以是Spring自己的MVC框架,或者提供的Web框架,如Struts、Webwork、tapestry和jsf。

Web模塊用于整合Web框架,將Web框架也納入Spring的管理之中。如Spring提供繼承方式與代理方式整合Struts,繼承方式不需要更改任何配置文件,只把Action繼承自ActionSupport即可,但會對Spring產(chǎn)生依賴。代理方式需要在struts-config.xml中配置<controller>,由Spring全盤代理,因此可以使用Spring的各種資源、攔截器等。

7、Spring MVC

MVC框架是一個全功能的構(gòu)建Web應(yīng)用程序的MVC實現(xiàn)。通過策略接口,MVC框架變成為高度可配置的。Spring的MVC框架提供清晰的角色劃分:控制器、驗證器、命令對象、表單對象和模型對象、分發(fā)器、處理器映射和視圖解析器。Spring支持多種視圖技術(shù)。

Spring MVC 的工作流程:

(1) 客戶端發(fā)送請求,請求到達 DispatcherServlet 主控制器。
(2) DispatcherServlet 控制器調(diào)用 HandlerMapping 處理。
(3) HandlerMapping 負責(zé)維護請求和 Controller 組件對應(yīng)關(guān)系。 HandlerMapping 根據(jù)請求調(diào)用對應(yīng)的 Controller 組件處理。
(4) 執(zhí)行 Controller 組件的業(yè)務(wù)處理,需要訪問數(shù)據(jù)庫,可以調(diào)用 DAO 等組件。
(5)Controller 業(yè)務(wù)方法處理完畢后,會返回一個 ModelAndView 對象。該組件封裝了模型數(shù)據(jù)和視圖標(biāo)識。
(6)Servlet 主控制器調(diào)用 ViewResolver 組件,根據(jù) ModelAndView 信息處理。定位視圖資源,生成視圖響應(yīng)信息。
(7)控制器將響應(yīng)信息給用戶輸出。  

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java如何實現(xiàn)一個BlockingQueue

    詳解Java如何實現(xiàn)一個BlockingQueue

    這篇文章主要為大家詳細介紹了Java如何實現(xiàn)一個BlockingQueue阻塞隊列,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • Java RMI詳細介紹及簡單實例

    Java RMI詳細介紹及簡單實例

    這篇文章主要介紹了Java RMI詳細介紹及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • springBoot加入thymeleaf模板的方式

    springBoot加入thymeleaf模板的方式

    這篇文章主要介紹了springBoot加入thymeleaf模板的方式,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 解決SpringBoot2多線程無法注入的問題

    解決SpringBoot2多線程無法注入的問題

    這篇文章主要介紹了解決SpringBoot2多線程無法注入的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringBoot初始化加載配置的八種方式總結(jié)

    SpringBoot初始化加載配置的八種方式總結(jié)

    在日常開發(fā)時,我們常常需要 在SpringBoot應(yīng)用啟動時執(zhí)行某一段邏輯,如獲取一些當(dāng)前環(huán)境的配置或變量、向數(shù)據(jù)庫寫入一些初始數(shù)據(jù)或者連接某些第三方系統(tǒng),確認對方可以工作,那么在實現(xiàn)初始化邏輯代碼時就需要小心了,所以本文介紹了SpringBoot初始化加載配置的方式
    2024-12-12
  • 使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常)

    使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常)

    這篇文章主要介紹了使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • zuul集成Sentinel,完成對path映射的限流操作

    zuul集成Sentinel,完成對path映射的限流操作

    這篇文章主要介紹了zuul集成Sentinel,完成對path映射的限流操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java 代碼中預(yù)防空指針異常的處理辦法

    java 代碼中預(yù)防空指針異常的處理辦法

    個人在做項目時,對NullPointerException的幾點總結(jié),請網(wǎng)友拍磚?。?!多多提意見,
    2013-03-03
  • 部署springboot項目到云服務(wù)器的兩種方式(jar+war)

    部署springboot項目到云服務(wù)器的兩種方式(jar+war)

    本文主要介紹了部署springboot項目到云服務(wù)器的兩種方式,主要介紹了jar和war兩種方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 詳解SpringBoot和SpringBatch 使用

    詳解SpringBoot和SpringBatch 使用

    Spring Batch 是一個輕量級的、完善的批處理框架,旨在幫助企業(yè)建立健壯、高效的批處理應(yīng)用。這篇文章主要介紹了詳解SpringBoot和SpringBatch 使用,需要的朋友可以參考下
    2018-07-07

最新評論

屏东县| 通化市| 景宁| 鱼台县| 库伦旗| 黄冈市| 乐昌市| 明光市| 象山县| 台东县| 菏泽市| 行唐县| 石门县| 台中县| 博罗县| 安泽县| 林芝县| 瑞金市| 康马县| 武川县| 黄石市| 雅安市| 准格尔旗| 深泽县| 大冶市| 鲁甸县| 淮安市| 茌平县| 思茅市| 嘉兴市| 塔河县| 阜宁县| 辽宁省| 唐山市| 康定县| 新邵县| 澄迈县| 苏州市| 安图县| 靖江市| 民丰县|