日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

第一章:認識Spring

Spring認識框架

spring全家桶: spring ,springmvc,spring boot,spring cloud

spring:出現(xiàn)在2002左右,解決企業(yè)開發(fā)的難度,減輕對項目模塊之間的管理。

類和類之間的管理,幫助開發(fā)人員創(chuàng)建對象,管理對象之間的關系。

spring核心技術ioc ,aop 。能實現(xiàn)模塊之間,類之間的解耦合。

依賴: classa中使用classb的屬性或者方法,叫做classa依賴classb。

Spring框架內部模塊

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

第二章 IoC控制反轉

IoC概念

框架怎么學:框架是一個軟件,是其它人寫好的軟件。知道框架能干啥, 具體的使用步要就行。

1)知道框架能做什么,mybatis--訪問數(shù)據(jù)庫, 對表中的數(shù)據(jù)執(zhí)行增刪改查。

2)框架的語法,框架要完成一個功能,需要一定的步驟支持的。

3)框架的內部實現(xiàn),框架內部怎么做,原理是什么。

4)通過學習,可以實現(xiàn)一個框架。

spring的第一個核心功能ioc

IOC (Inversion of Control) :控制反轉,是一個理論,概念,思想。

描述的:把對象的創(chuàng)建,賦值,管理工作都交給代碼之外的容器實現(xiàn),也就是對象的創(chuàng)建是有其它外部資源完成。

控制:創(chuàng)建對象,對象的屬性賦值,對象之間的關系管理。

反轉:把原來的開發(fā)人員管理,創(chuàng)建對象的權限轉移給代碼之外的容器實現(xiàn)。由容器代替開發(fā)人員管理對象。創(chuàng)建對象,給屬性賦值。
正轉:由開發(fā)人員在代碼中,使用new構造方法創(chuàng)建對象,開發(fā)人員主動管理對象。

public static void main(string args[]){
student student - new Student();//在代碼中, 創(chuàng)建對象。--正轉。

}

容器:是一個服務器軟件,一 個框架(spring)

為什么要使用ioc :目的就是減少對代碼的改動,也能實現(xiàn)不同的功能。實現(xiàn)解耦合。

創(chuàng)建對象的方式

為什么要使用ioc :目的就是減少對代碼的改動,也能實現(xiàn)不同的功能。實現(xiàn)解耦合。

JAVA中創(chuàng)建對象有哪些方式:

1.構造方法,new student ( )

2.反射

3.序列化

4.克隆

5.ioc。容器創(chuàng)建對象

6.動態(tài)代理,利用反射機制在運行時創(chuàng)建代理類。

IoC的實現(xiàn)技術

ioc的體現(xiàn):
servlet

1.創(chuàng)建類繼承HttpServelt
2.web.xml 注冊 servlet ,使用<servlet-name> myservlet </ servlet-name>
<servelt-class>com.
bjpwernode.controller.MyServlet1</servlet-class>
3.沒有創(chuàng)建Servlet對象,沒有 MyServlet myservlet = new MyServlet ()
4. Servlet是Tomcat服務器它能你創(chuàng)建的。Tomcat也稱為容器。
Tomcat作為容器:里面存放的有Servlet對象,Listener ,F(xiàn)il ter對象
IoC的技術實現(xiàn)

DT是inc的技術實現(xiàn)

DI ( Dependency Injection) : 依賴注入,只需要在程序中提供要使用的對象名稱就可以,至

賦值,查找都由容器內部實現(xiàn)。

spring是使用的di實現(xiàn)了ioc的功能,spring底層創(chuàng)建對象,使用的是反射機制。

第一個例子創(chuàng)建對象

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

創(chuàng)建spring配置文件

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

創(chuàng)建容器對象ApplicaitonContext【拿到spring創(chuàng)建的對象】

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

spring創(chuàng)建對象的時機

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

獲取容器中對象信息的api

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

創(chuàng)建非自定義對象

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

設值注入概念【注入就是賦值】

ch02-di-xml:在spring的配置文件中,給java對象的屬性賦值。

di:依賴注入,表示創(chuàng)建對象,給屬性賦值。

di的實現(xiàn)有兩種:

1.在spring的配置文件中,使用標簽和屬性完成,叫做基于XML的di實現(xiàn)。

2.使用spring中的注解,完成屬性賦值,叫做基于注解的id實現(xiàn)。

di的語法分類:

1. set注入(設置注入) : spring調用類的set方法,在set方法可以實現(xiàn)屬性的賦值。

80左右都是使用的set注入。

2.構造注入,spring調用類的有參數(shù)構造方法,創(chuàng)建對象。在構造方法中完成賦值。

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

簡單類型的設值注入實現(xiàn)

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

單元測試junit

就是因為在main文件中測試不方便,不能獨立測試每一個方法,所以提出單元測試。

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

junit :單元測試,一個工具類庫,做測試方法使用的。

單元:指定的是方法,一個類中有很多方法,一個方法稱為單元。

使用單元測試

1.需要加入junit依賴。

<dependency>

<groupId>junit</groupId>

<arti factId> junit </arti factId><version>4.11</version>

<scope>test</ scope>

</ dependency>

2.創(chuàng)建測試作用的類:叫做測試類

src/ test/java目錄中創(chuàng)建類

3.創(chuàng)建測試方法

1) public玩法

2)沒有返回值void

3)方法名稱自定義,建議名稱是test +你要測試萬法名稱

4)方法沒有參數(shù)

5)方法的上面加入@Test,這樣的方法是可以單獨執(zhí)行的。不用使用main方法。

設值注入【set注入】的注意事項

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

設值注入只是使用set方法

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

xml文件規(guī)定,所有的屬性必須放在引號中,int類型的數(shù)據(jù)也一樣。

設值注入也可以給別人寫的類進行賦值,只要有對用的set方法就行。

引用類型的設值注入

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

構造注入

構造注入是指,在構造調用者實例的同時,完成被調用者的實例化。即使用構造器設置依賴關系。

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

還可以省略index。

構造注入創(chuàng)建文件對象

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

復習第一天內容【思維導圖】

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

IoC作業(yè)

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

自動注入byName

簡化對于引用類型的重復賦值,減少冗余。

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

自動注入byType

2. byType(按類型注入) : java類中引用類型的數(shù)據(jù)類型和spring容器中(配置文件) <bean>的class是同源關系的,這樣的bean能夠賦值給引用類型。

同源就是一類的意思:

1.java類中引用類型的數(shù)據(jù)類型和bean的class的值是樣的。

2.java類中引用類型的數(shù)據(jù)類型和bean的class的值父子類關系的。

3.java類中引用類型的數(shù)據(jù)類型和bean的class的值接口和實現(xiàn)類關系的

語法:

<bean id="xx" class="yyy" autowire= "byType">

簡單類型屬性賦值

</bean>

為什么使用多配置文件

大型項目中,需要多個配置文件。

多個配置優(yōu)勢

1.每個文件的大小比一個文件要小很多,效率高。

2.避免多入競爭帶來的沖突。

如果你的項目有多個模塊(相關的功能在一起),一個模塊一個配置文件。

學生考勤模塊一個配置文件,張三

學生成績一個配置文件,李四

多文件的分配方式:

1.按功能模塊,一個模塊一個配置文件

2.按類的功能,數(shù)據(jù)庫相關的配置一個文件配置文件,做事務的功能一個配置文件,做service功能的一個配置文件等。

包含關系的配置文件

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

注解的使用步驟

基于注解的di:通過注解完成java對象創(chuàng)建,屬性賦值。

使用注解的步驟:

1.加入maven的依賴spring-context ,在你加入spring- context的同時,間接加入spring- aop的依賴,使用注解必須使用spring-aop依賴。

2.在類中加入spring的注解(多個不同功能的注解)

3.在spring的配置文件中,加入一個組件掃描器的標簽,說明注解在你的項目中的位置。

學習的注解:

1.@Component

2.@Respotory

3.@service

4.@Controller

5.@value

6.@Autowired

7.@Resource

Component注解使用

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

組件掃描器

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

多注解項目分層

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

@Component(value = "myStudent ")等同于

<bean id= "myStudent" class="com.bjpowernode.ba01.Student" />

spring中和@Component功能一致,創(chuàng)建對象的注解還有:

1. @Repository (用在持久層類的上面) :放在da的實現(xiàn)類上面,表示創(chuàng)建dao對象,dao對象是能訪問數(shù)據(jù)庫的。

2.@Service(用在業(yè)務層類的上面) :放在service的實現(xiàn)類上面,創(chuàng)建service對象,service對象是做業(yè)務處理,可以有事務等功能的。

3. @Controller(用在控制器的上面) :放在控制器(處理器)類的上面,創(chuàng)建控制器對象的,控制器對象,能夠接受用戶提交的參數(shù),顯示請求的處理結果。

以上三個注解的使用語法和@Component 一樣的。都能創(chuàng)建對象,但是這三個注解還有額外的功能。

@Repository,@service , @Controller 是給項目的對象分層的。

不清楚要用上面三個注解的情況就用@Component。

掃描多個包的方法

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

簡單類型屬性賦值

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

引用類型屬性賦值AutoWired自動注入,使用byType

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

步驟:首先掃描配置文件ApplicaitonContext,使用組件掃描器掃描base-package,創(chuàng)建包中所有對象,根據(jù)其中的注解注入【賦值】。

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

引用類型屬性賦值AutoWired自動注入,使用byName

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

比較

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

引用類型AutoWired的required屬性

引用類型

@Autowired:spring 框架提供的注解,實現(xiàn)引用類型的賦值。

spring中通過注解給引用類型賦值,使用的是自動注入原理, 支持byName, byType。

@Autowired:默認使用的是byType自動注入。

屬性:required,是 一個boolean類型的,默認true。

required=true :表示引用類型賦值失敗,程序報錯,并終止執(zhí)行。

required=false :引用類型如果賦值失敗,程序正常執(zhí)行,引用類型是null。

引用類型AutoWired的required屬性推薦使用默認值true

使用true, 盡早解決程序中的問題,報錯。

引用類型Resource

Resource是來自于JDK中的注解,不是來自于spring的。

引用類型

@Resource:來自jdk中的注解,spring框架提供J對這個注解的功能支持,可以使用它給引用類型賦值。使用的也是自動注入原理,支持byName ,byType ,默認是byName。

位置: 1. 在屬性定義的上面,無需set方法,推薦使用。

2.在set方法的上面

//默認是byNamel

@Resource

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

xml配置文件和注解的對比

經常改的就是使用xml配置文件、不經常改的就使用注解。

注解為主,配置文件為輔

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

復習【控制反轉】

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

復習動態(tài)代理的實現(xiàn)方式

使用動態(tài)代理的目的是在不改變原先類的基礎上,對其進行功能增強。

JDK 動態(tài)代理

動態(tài)代理的實現(xiàn)方式常用的有兩種:使用JDK的Proxy,與通過CGLIB生成代理。Jdk的動態(tài)要求目標對象必須實現(xiàn)接口,這是java設計上的要求。

從jdk1.3以來,java 語言通過java.lang.reflect 包提供三個類支持代理模式Proxy,Method 和InovcationHandler。

CGLIB動態(tài)代理(了解)

CGLIB的要求更低

CGLIB(Code Generation Library)是一個開源項目。是一個強大的,高性能,高質量的Code生成類庫,它可以在運行期擴展Java 類與實現(xiàn)Java接口。它廣泛地被許多AOP的框架使用,例如Spring AOP。

使用JDK 的Proxy 實現(xiàn)代理,要求目標類與代理類實現(xiàn)相同的接口。若目標類不存在接口,則無法使用該方式實現(xiàn)。但對于無接口的類,要為其創(chuàng)建動態(tài)代理,就要使用CGLIB來實現(xiàn)。.

CGLIB代理的生成原理是生成目標類的子類,而子類是增強過的,這個子類對象就是代理對象。所以,使用CGLIB生成動態(tài)代理,要求目標類必須能夠被繼承,即不能是final 的類。

CGLIB經常被應用在框架中,例如Spring ,Hibernate等。cglib 的代理效率高于Jdk。項目中直接使用動態(tài)代理的地方不多。一般都使用框架提供的功能。

用注解實現(xiàn)Ioc作業(yè)

1、加入依賴

2、創(chuàng)建類,在類中加入注解

3、聲名組件掃描器

使用動態(tài)代理實現(xiàn)一個功能增強

一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 


一文帶你學習Spring框架從入門到精通,通向架構師道路的必經之學

 

今日份分享已結束,請大家多多包涵和指點!

分享到:
標簽:框架 Spring
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定