成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

測試同學從0到1上手Spring

開發(fā) 前端
Spring是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發(fā)提供集成的框架。

 最近在各個大廠的JD中關于測試平臺開發(fā)的職位信息頻頻曝光,有很多同學對該職位產(chǎn)生了極高的熱情。也有很多人對其望而卻步,認為Spring、Spring boot這些東東太深奧了,開發(fā)都很難搞定,自己是一個tester又怎能駕馭呢?為了打消大家的顧慮,我準備了一系列文章,通過我一個測試人的視角(我是從零開始學習,我懂測試同學的需求),用最通俗的語言幫大家搞定Spring基礎知識,進而快速理解Spring并在實際工作中進行應用!

Spring定義

Spring是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發(fā)提供集成的框架。Spring 框架的 7 個模塊,如下圖所示:


每個模塊的功能如下:

Spring core:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現(xiàn)。BeanFactory 使用控制反轉(zhuǎn)(IOC) 模式將應用程序的配置和依賴性規(guī)范與實際的應用程序代碼分開。

Spring ContextSpring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業(yè)服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調(diào)度功能。

Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向切面的編程功能 , 集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理任何支持 AOP的對象。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴組件,就可以將聲明性事務管理集成到應用程序中。

Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫供應商拋出的錯誤消息。異常層次結(jié)構(gòu)簡化了錯誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量(例如打開和關閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結(jié)構(gòu)。

Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結(jié)構(gòu)。

Spring Web:Web 上下文模塊建立在應用程序上下文模塊之上,為基于 Web 的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌?/p>

Spring MVC:MVC 框架是一個全功能的構(gòu)建 Web 應用程序的 MVC 實現(xiàn)。通過策略接口,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText和POI

其中最為重要的就是Spring Core(控制反轉(zhuǎn)技術,即IOC)和 Spring AOP,我會在后續(xù)的文章中進行詳細介紹,今天我們來重點講解Spring的環(huán)境搭建和Hello Spring Demo的編寫。

環(huán)境搭建

最簡單的方式,創(chuàng)建一個maven工程,pom.xml如下

  1. <dependency> 
  2.  
  3. <groupId>org.springframework</groupId> 
  4.  
  5. <artifactId>spring-webmvc</artifactId> 
  6.  
  7. <version>5.2.5.RELEASE</version> 
  8.  
  9. </dependency> 

 Spring 中的Bean

Spring容器可以被看作一個大工廠,而 Spring 容器中的 Bean 就相當于該工廠的產(chǎn)品。如果希望這個大工廠能夠生產(chǎn)和管理 Bean,這時則需要告訴容器需要哪些 Bean,以及需要以何種方式將這些 Bean 裝配到一起。

Bean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean 通過提供符合一致性設計模式的公共方法將內(nèi)部域暴露成員屬性,set和get方法獲取。總之,JavaBean就是遵循一些規(guī)范的Java類。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過反射機制發(fā)現(xiàn)和操作這些JavaBean 的屬性。

范例代碼如下:

  1. public class Person { 
  2. //Person類封裝的私有屬性 
  3. // 姓名 String類型 
  4. private String name
  5. // 性別 String類型 
  6. private String sex; 
  7. // 年齡int類型 
  8. private int age; 
  9. //Person類的無參數(shù)構(gòu)造方法 
  10. public Person() { 
  11. //Person類對外提供的用于訪問私有屬性的public方法 
  12. public String getName() { 
  13. return name
  14. public void setName(String name) { 
  15. this.name = name
  16. public String getSex() { 
  17. return sex; 
  18. public void setSex(String sex) { 
  19. this.sex = sex; 
  20. public int getAge() { 
  21. return age; 
  22. public void setAge(int age) { 
  23. this.age = age; 

 Spring中的配置文件

Spring配置文件是用于指導Spring工廠進行Bean生產(chǎn)、依賴關系注入(裝配)及Bean實例分發(fā)的"圖紙"。Spring配置文件是一個或多個標準的XML文檔,applicationContext.xml(也可以定義為其他名字)是Spring的默認配置文件,當容器啟動時找不到指定的配置文檔時,將會嘗試加載這個默認的配置文件。我們可以把配置文件保存在src/main/resources目錄下


Spring配置文件支持兩種不同的格式,分別是 XML 文件格式和 Properties 文件格式。通常情況下,Spring 會以 XML 文件格式作為Spring 的配置文件,這種配置方式通過 XML 文件注冊并管理 Bean 之間的依賴關系。XML 格式配置文件的根元素是 ,該元素包含了多個 子元素,每一個 子元素定義了一個 Bean,并描述了該 Bean 如何被裝配到 Spring 容器中。配置文件基礎格式如下:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2.  
  3. <beans xmlns="http://www.springframework.org/schema/beans" 
  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  6.  
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans 
  8.  
  9. https://www.springframework.org/schema/beans/spring-beans.xsd"> 
  10.  
  11. <bean id="..." class="..."
  12.  
  13. </bean> 
  14.  
  15. <bean id="..." class="..."
  16.  
  17. <property name=" ..." value="..."/> 
  18.  
  19. </beans> 

 其中

xmlns表示xml需要引入的命名空間。

bean= 對象

id= 變量名,id 是bean的標識符,要唯一,可以理解為一個實例名

class= new的類

property相當于給對象中的屬性設值

Hello Spring

寫一個類代碼

  1. public class HelloSpring { 
  2. private String name="hello"
  3. HelloSpring(){ 
  4. System.out.println("Hello Spring"); 
  5. public String getName() { 
  6. return this.name ; 
  7. public void setName(String name) { 
  8. this.name = name

 在配置文件中添加HelloSpring的類配置信息

  1. <?xmlversion="1.0"encoding="UTF-8"?> 
  2.  
  3. <beansxmlns="http://www.springframework.org/schema/beans" 
  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  6.  
  7. xmlns:context="http://www.springframework.org/schema/context" 
  8.  
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans 
  10.  
  11. https://www.springframework.org/schema/beans/spring-beans.xsd 
  12.  
  13. http://www.springframework.org/schema/context 
  14.  
  15. https://www.springframework.org/schema/context/spring-context.xsd"> 
  16.  
  17. <beanid="hellospring"class="com.my.demo.HelloSpring"/> 
  18.  
  19. </beans> 

 寫一個測試類

  1. public class HelloTest { 
  2.      public static void main(String[] args) { 
  3.            //獲取spring上下文對象 
  4.            ApplicationContextcontext = new ClassPathXmlApplicationContext("beans1.xml"); 
  5.            //我們的對象能在都在spring中管理了,我們要使用,直接取出來就可以了 
  6.            HelloSpringhello = (HelloSpring) context.getBean("hellospring"); 
  7.            System.out.println(hello.getName()); 
  8.         } 

 運行類HelloTest,運行結(jié)果如下:

  1. Hello Spring //構(gòu)造函數(shù)中輸出的值 
  2.  
  3. Hello //getName方法中輸出的值 

 是不是很神奇,我們可以看到spring并沒有new 實例的過程,但是完成了實例化的操作!并成功調(diào)用了getName方法,這就是Spring 容器中對Bean的管理,簡單的說,就是Spring框架從配置文件beans1.xml中獲取了類HelloSpring的實例hellospring,并自動完成了實例化的相關工作!這項技術就是IOC,我會在下一篇文章中詳細說明。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-03-16 08:22:49

SpringIoCAOP

2021-03-23 08:12:13

SpringDIIoC

2021-03-30 08:49:27

測試Spring AOP

2016-11-28 16:23:23

戴爾

2022-05-09 08:35:43

面試產(chǎn)品互聯(lián)網(wǎng)

2023-03-06 11:35:55

經(jīng)營分析體系

2021-07-01 07:03:32

開發(fā)Webpack代碼

2024-12-02 11:24:30

Docker編排技術

2022-03-15 11:51:00

決策分析模型

2022-11-03 11:31:43

結(jié)構(gòu)分析法監(jiān)測

2023-03-19 17:36:38

2019-07-31 10:18:17

Web 開發(fā)Python

2022-04-07 10:02:58

前端檢測工具

2017-05-27 09:23:10

IOS框架APP框架代碼

2023-03-22 11:41:56

2022-06-13 07:02:02

Zadig平臺自動化

2018-01-16 12:31:33

Python爬蟲數(shù)據(jù)

2019-10-22 08:12:49

消息隊列分布式系統(tǒng)

2015-06-12 10:03:05

QQ瀏覽器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美国产精品一区二区三区 | 亚洲欧美日韩电影 | 在线成人| 黑人一级黄色大片 | 亚洲一区免费 | 亚洲精品免费看 | 亚洲国产精品一区二区三区 | 男女网站视频 | 久久亚洲欧美日韩精品专区 | 国产成人精品一区二区在线 | 污片在线免费观看 | 91天堂网 | 欧美日产国产成人免费图片 | 最新日韩在线 | 国产在线精品一区二区三区 | 日韩精品在线观看一区二区三区 | 波多野结衣在线观看一区二区三区 | 最新黄色毛片 | www.日韩在线 | 精品一区免费 | 欧美性猛交一区二区三区精品 | 视频在线观看一区二区 | 免费成人毛片 | 夜夜爽夜夜操 | 欧美日韩国产在线观看 | 精品久久影院 | 国产成人免费视频 | 视频三区| 久久久精品一区 | 黄色网页在线观看 | 精品久久久久久亚洲精品 | 国产成人一区二区三区电影 | 91精品久久久久久久久久 | 日韩av免费在线观看 | 日日日日日日bbbbb视频 | 久久国产精品一区二区 | 精品av | 91久久精品国产91久久性色tv | 中文日韩在线 | 久久综合久色欧美综合狠狠 | 97日日碰人人模人人澡分享吧 |