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

Spring-全面詳解(學習總結)

 更新時間:2021年07月16日 09:55:17   作者:寧在春  
這篇文章主要介紹了詳解Spring框架入門,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能給你帶來幫助

一、Spring介紹

簡介

Spring 框架為現(xiàn)代基于 java 的企業(yè)應用程序提供了一個全面的編程和配置模型——在任何類型的部署平臺上

特點、主要特點

1、非侵入式

2、容器

3、IoC

4、AOP

5、方便程序的測試

為什么要學?

主流市場推薦、學習的人數(shù)多、Spring社區(qū)活躍、工作需要、屬于開源框架、方便web開發(fā)、集成度高。

還因為Spring具有 以下優(yōu)點:

  • 輕量級:相較于EJB容器,Spring采用的IoC容器非常的輕量級,基礎版本的Spring框架大約只有2MB。Spring可以讓開發(fā)者們僅僅使用POJO(Plain Old Java Object,相對于EJB)就能夠開發(fā)出企業(yè)級的應用。這樣做的好處是,你不需要使用臃腫龐大的 EJB容器(應用服務器),你只需要輕量的servlet容器(如Tomcat)。尤其在一些開發(fā)當中,很稀缺內存和CPU資源時,采用Spring比EJB無論是開發(fā)還是部署應用都更節(jié)約資源。
  • 控制反轉(IOC):Spring使用控制反轉技術實現(xiàn)了松耦合。依賴被注入到對象,而不是創(chuàng)建或尋找依賴對象。
  • 面向切面編程(AOP): Spring支持面向切面編程,同時把應用的業(yè)務邏輯與系統(tǒng)的服務分離開來。
  • MVC框架:Spring MVC是一個非常好的MVC框架,可以替換其他web框架諸如Struts。
  • 集成性:Spring非常容易和其他的流行框架一起集成開發(fā),這些框架包括:ORM框架,logging框架,JEE, Quartz,以及Struts等表現(xiàn)層框架。
  • 事務管理:Spring強大的事務管理功能,能夠處理本地事務(一個數(shù)據(jù)庫)或是全局事務(多個數(shù)據(jù),采用JTA)。
  • 模塊分離:Spring框架是由模塊構成的。雖然已經有太多的包和類了,但它們都按照模塊分好類了,你只需要考慮你會用到的模塊,而不用理其他的模塊。
  • 異常處理:由于Java的JDBC,Hibernate等API中有很多方法拋出的是checked exception,而很多開發(fā)者并不能很好的處理異常。Spring提供了統(tǒng)一的API將這些checked exception的異常轉換成Spring的unchecked exception。
  • 單元測試:Spring寫出來的代碼非常容易做單元測試,可以采用依賴注射(Dependency Injection)將測試的數(shù)據(jù)注射到程序中。

Spring框架體系結構:

img

二、IOC(依賴注入)

Spring 容器IOC 和 bean介紹

本章介紹了控制反轉原則的 Spring 框架實現(xiàn)。也被稱為依賴注入。這是一個過程,對象僅通過構造函數(shù)參數(shù)、工廠方法的參數(shù)或者在對象實例被構造或者從工廠方法返回后在其上設置的屬性來定義它們的依賴關系(也就是說,它們使用的其他對象)。然后容器在創(chuàng)建 bean 時注入這些依賴項。這個過程從根本上來說是 bean 本身的逆過程(因此得名為控制反轉) ,通過使用類的直接構造或服務定位器模式之類的機制來控制其依賴項的實例化或位置。

上面的話,簡單的說就是 使用對象的人并不和對象有直接關聯(lián)。

控制反轉:

控制反轉(Inversion of Control)是說創(chuàng)建對象的控制權發(fā)生轉移,以前創(chuàng)建對象的主動權和創(chuàng)建時機由應用程序把控,而現(xiàn)在這種權利轉交給 IoC 容器,它就是一個專門用來創(chuàng)建對象的工廠,你需要什么對象,它就給你什么對象。有了 IoC 容器,依賴關系就改變了,原先的依賴關系就沒了,它們都依賴 IoC容器了,通過 IoC 容器來建立它們之間的關系。

在這里插入圖片描述

在這里插入圖片描述

容器概述:

Context.applicationcontext 接口代表 spring ioc 容器,負責實例化、配置和裝配 bean。

  • Spring IOC容器就是一個org.springframework.context.ApplicationContext的實例化對象
  • 容器負責了實例化,配置以及裝配一個bean

ApplicationContext 接口表示 Spring IoC 容器,負責實例化、配置和裝配 bean。容器通過讀取配置元數(shù)據(jù)獲取關于實例化、配置和組裝什么對象的指令。配置元數(shù)據(jù)用 XML、 Java 注釋或 Java 代碼表示。它允許您表達組成應用程序的對象以及這些對象之間豐富的相互依賴關系。

  • ClassPathXmlApplicationContext
  • FileSystemXmlApplicationContext

Spring 如何工作?

container magic

  • Spring容器通過我們提交的pojo類以及配置元數(shù)據(jù)產生一個充分配置的可以使用的系統(tǒng)
  • 這里說的配置元數(shù)據(jù),實際上我們就是我們提供的XML配置文件,或者通過注解方式提供的一些配置信息

bean介紹

在 Spring 中,構成應用程序主干的對象和由 Spring IoC 容器管理的對象稱為 bean。Bean 是由 Spring IoC 容器實例化、組裝和管理的對象。否則,bean 只是應用程序中的許多對象之一。

配置元數(shù)據(jù)

  • 傳統(tǒng)上,配置元數(shù)據(jù)是以一種簡單和直觀的 XML 格式提供的
  • 現(xiàn)在,大部分使用注解方式。

基本結構

下面的示例顯示了基于 xml 的配置元數(shù)據(jù)的基本結構:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="..." class="...">  
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    <!-- more bean definitions go here -->
</beans>
  • id 屬性是標識單個 bean 定義的字符串
  • class 屬性是全限定類名

AOP

面向切面編程,是針對面向對象編程的一種補充,同時也是spring中第二個最核心的功能,例如可以進行權限認證,日志輸出等,可以無侵入的對原來的功能進行切面加入自定義的非業(yè)務功能。

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • Java使用Comparable解決排序問題

    Java使用Comparable解決排序問題

    這篇文章主要介紹了Java使用Comparable解決排序問題的方法,涉及java針對文件的相關操作及排序的技巧,需要的朋友可以參考下
    2015-05-05
  • SpringBoot讀取資源目錄中JSON文件的方法實例

    SpringBoot讀取資源目錄中JSON文件的方法實例

    最近做項目遇到需要將json類型的配置文件引用到項目中,已經將讀取json文件的方法封裝成工具類,下面這篇文章主要給大家介紹了關于SpringBoot讀取資源目錄中JSON文件的相關資料,需要的朋友可以參考下
    2023-04-04
  • Springboot實現(xiàn)Java郵件任務過程解析

    Springboot實現(xiàn)Java郵件任務過程解析

    這篇文章主要介紹了Springboot實現(xiàn)Java郵件任務過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • java 靜態(tài)鏈表實現(xiàn)示例詳解

    java 靜態(tài)鏈表實現(xiàn)示例詳解

    這篇文章主要為大家介紹了java 靜態(tài)鏈表實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Springmvc異常處理器及攔截器實現(xiàn)代碼

    Springmvc異常處理器及攔截器實現(xiàn)代碼

    這篇文章主要介紹了Springmvc異常處理器及攔截器實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 詳細分析java 動態(tài)代理

    詳細分析java 動態(tài)代理

    這篇文章主要介紹了java 動態(tài)代理的的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • idea ssm項目java程序使用十六進制rxtx包向串口發(fā)送指令的方法

    idea ssm項目java程序使用十六進制rxtx包向串口發(fā)送指令的方法

    這篇文章主要介紹了idea ssm項目java程序向串口發(fā)送指令并且使用十六進制 rxtx包,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Mybatis insert方法主鍵回填和自定義操作

    Mybatis insert方法主鍵回填和自定義操作

    這篇文章主要介紹了Mybatis insert方法主鍵回填和自定義操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java的Comparable,Comparator和Cloneable三大接口詳解

    Java的Comparable,Comparator和Cloneable三大接口詳解

    這篇文章主要為大家詳細介紹了Java的Comparable,Comparator和Cloneable的接口,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 詳談Enumeration接口和Iterator接口的區(qū)別

    詳談Enumeration接口和Iterator接口的區(qū)別

    下面小編就為大家?guī)硪黄斦凟numeration接口和Iterator接口的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論

海晏县| 玛纳斯县| 林甸县| 洪江市| 瑞昌市| 西贡区| 上高县| 富平县| 巴林右旗| 湛江市| 柯坪县| 宁国市| 璧山县| 罗甸县| 共和县| 旬阳县| 印江| 依安县| 上栗县| 方山县| 内丘县| 泽普县| 肇庆市| 平度市| 鹤峰县| 额尔古纳市| 鄂托克前旗| 建瓯市| 永川市| 濉溪县| 房产| 桦南县| 金堂县| 东阳市| 三原县| 河池市| 平邑县| 安庆市| 略阳县| 基隆市| 山阴县|