SpringBoot入門(mén)培訓(xùn).ppt_第1頁(yè)
SpringBoot入門(mén)培訓(xùn).ppt_第2頁(yè)
SpringBoot入門(mén)培訓(xùn).ppt_第3頁(yè)
SpringBoot入門(mén)培訓(xùn).ppt_第4頁(yè)
SpringBoot入門(mén)培訓(xùn).ppt_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1,SpringBoot入門(mén)培訓(xùn),2,主要內(nèi)容,一、springBoot的簡(jiǎn)介 二、springBoot注解 三、springBoot應(yīng)用講解 四、springBoot的發(fā)布 五、springBoot總結(jié),3,1、springBoot背景,多年以來(lái),Spring IO平臺(tái)飽受非議的一點(diǎn)就是大量的XML配置以及復(fù)雜的依賴(lài)管理。在2013年的SpringOne 2GX會(huì)議上,Pivotal的CTO Adrian Colyer回應(yīng)了這些批評(píng),并且特別提到該平臺(tái)將來(lái)的目標(biāo)之一就是實(shí)現(xiàn)免XML配置的開(kāi)發(fā)體驗(yàn)。Boot所實(shí)現(xiàn)的功能超出了這個(gè)任務(wù)的描述,開(kāi)發(fā)人員不僅不再需要編寫(xiě)XML,而且在一些場(chǎng)景中甚至不

2、需要編寫(xiě)繁瑣的import語(yǔ)句。在對(duì)外公開(kāi)的beta版本剛剛發(fā)布之時(shí),Boot描述了如何使用該框架在140個(gè)字符內(nèi)實(shí)現(xiàn)可運(yùn)行的web應(yīng)用,從而獲得了極大的關(guān)注度,該樣例發(fā)表在tweet上。,4,2、什么是springBoot?,1、Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,Spring Boot并不是要成為Spring IO平臺(tái)里面眾多“Foundation”層項(xiàng)目的替代者。Spring Boot的目標(biāo)不在于為已解決的問(wèn)題域提供新的解決方案,而是為平臺(tái)帶來(lái)另一種開(kāi)發(fā)體驗(yàn),從而簡(jiǎn)化對(duì)這些已有技術(shù)的使用。 2、該框架使用了特定的方式(繼承starter,約定優(yōu)先于配置)來(lái)進(jìn)行配置

3、,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。通過(guò)這種方式,Boot致力于在蓬勃發(fā)展的快速應(yīng)用開(kāi)發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。 3、Spring Boot是基于Spring4進(jìn)行設(shè)計(jì),承了原有Spring框架的優(yōu)秀基因。它并不是一個(gè)框架,從根本上將,它就是一些庫(kù)的集合,maven或者gradle項(xiàng)目導(dǎo)入相應(yīng)依賴(lài)即可使用Spring Boot,而且無(wú)需自行管理這些庫(kù)的版本。,5,2、為什么使用springBoot?,1、Spring Boot是為簡(jiǎn)化Spring項(xiàng)目配置而生,使用它使得jar依賴(lài)管理以及應(yīng)用編譯和部署更為簡(jiǎn)單。Spring Boot提

4、供自動(dòng)化配置,使用Spring Boot,你只需編寫(xiě)必要的代碼和配置必須的屬性。 2、使用Spring Boot,只需20行左右的代碼即可生成一個(gè)基本的Spring Web應(yīng)用,并且內(nèi)置了tomcat,構(gòu)建的fat Jar包通過(guò)java -jar就可以直接運(yùn)行。 3、如下特性使得Spring Boot非常契合微服務(wù)的概念,可以結(jié)合Spring Boot與Spring Cloud和Docker技術(shù)來(lái)構(gòu)建微服務(wù)并部署到云端: 一個(gè)可執(zhí)行jar即為一個(gè)獨(dú)立服務(wù) 很容易加載到容器,每個(gè)服務(wù)可以在自己的容器(例如docker)中運(yùn)行 通過(guò)一個(gè)腳本就可以實(shí)現(xiàn)配置與部署,很適合云端部署,并且自動(dòng)擴(kuò)展 也更容

5、易,6,3、springBoot有哪些特性?,1、無(wú)需手動(dòng)管理依賴(lài)jar包的版本 Spring-boot-*的jar包已對(duì)一些功能性jar包進(jìn)行了集成,示例如下: spring-boot-starter 核心Spring Boot starter,包括自動(dòng)配置支持,日志和YAML spring-boot-starter-actuator 生產(chǎn)準(zhǔn)備的特性,用于幫你監(jiān)控和 管理應(yīng)用 spring-boot-starter-web 對(duì)全棧web開(kāi)發(fā)的支持,包括Tomcat和 spring-webmvc spring-boot-starter-aop 對(duì)面向切面編程的支持,包括 spring-aop

6、和AspectJ spring-boot-starter-jdbc 對(duì)JDBC數(shù)據(jù)庫(kù)的支持 spring-boot-starter-security 對(duì) spring-security 的支持,7,3、springBoot有哪些特性?,1、無(wú)需手動(dòng)管理依賴(lài)jar包的版本 Spring-boot-*的jar包已對(duì)一些功能性jar包進(jìn)行了集成,示例如下: spring-boot-starter 核心Spring Boot starter,包括自動(dòng)配置支持,日志和YAML spring-boot-starter-actuator 生產(chǎn)準(zhǔn)備的特性,用于幫你監(jiān)控和 管理應(yīng)用 spring-boot-st

7、arter-web 對(duì)全棧web開(kāi)發(fā)的支持,包括Tomcat和 spring-webmvc spring-boot-starter-aop 對(duì)面向切面編程的支持,包括 spring-aop 和AspectJ spring-boot-starter-jdbc 對(duì)JDBC數(shù)據(jù)庫(kù)的支持 spring-boot-starter-security 對(duì) spring-security 的支持,8,3、springBoot有哪些特性?,1、無(wú)需手動(dòng)管理依賴(lài)jar包的版本: spring-boot-starter-amqp 通過(guò)spring-rabbit來(lái)支持AMQP協(xié)議(Advanced Message Q

8、ueuing Protocol)。 spring-boot-starter-ws 支持Spring Web Services。 spring-boot-starter-redis 支持Redis鍵值存儲(chǔ)數(shù)據(jù)庫(kù),包括spring-redis。 spring-boot-starter-test 支持常規(guī)的測(cè)試依賴(lài),包括JUnit、Hamcrest、Mockito以及spring-test模塊。,9,3、springBoot有哪些特性?,2、獨(dú)立運(yùn)行的Spring項(xiàng)目 Spring Boot默認(rèn)將應(yīng)用打包成一個(gè)可執(zhí)行的jar包文件,構(gòu)建成功后使用java -jar命令即可運(yùn)行應(yīng)用?;蛘咴趹?yīng)用項(xiàng)目的主

9、程序中運(yùn)行main函數(shù)即可,不需要依賴(lài)tomcat、jetty等外部的應(yīng)用服務(wù)器。 其中內(nèi)置的servlet Container: 此外,你仍然可以部署Spring Boot項(xiàng)目到任何兼容Servlet3.0+的容器。,10,3、springBoot有哪些特性?,3、自動(dòng)配置,無(wú)需xml Spring Boot嘗試根據(jù)你添加的jar依賴(lài)自動(dòng)配置你的應(yīng)用。例如,如果HSQLDB在類(lèi)路徑中,并且你沒(méi)有手動(dòng)配置任何db連接bean,則Spring Boot會(huì)自動(dòng)配置一個(gè)內(nèi)存db。 使用EnableAutoConfiguration或者SpringBootApplication注解,配 合Config

10、uration注解類(lèi),即可達(dá)到自動(dòng)配置的目的。 Spring Boot的這種自動(dòng)配置是非侵入式的,你可以定義自己的配置或bean來(lái)替代自動(dòng)配置的內(nèi)容。,11,3、springBoot有哪些特性?,4、外部化配置 Spring Boot可以使用properties文件,YAML文件,環(huán)境變量,命令行參數(shù)等來(lái)外部化配置。屬性值可以使用Value注解直接注入到bean中,并通過(guò)Spring的Environment抽象或經(jīng)過(guò)ConfigurationProperties注解綁定到結(jié)構(gòu)化對(duì)象來(lái)訪問(wèn)。實(shí)例如下: Component ConfigurationProperties(prefix=spring

11、.datasource) public class ApplicationUtil private String name; private String url; ,12,3、springBoot有哪些特性?,5、嵌入式servlet容器 Spring Boot的web模塊內(nèi)置嵌入的Tomcat, Jetty, Undertow來(lái)構(gòu)建自包含的Servlet容器。web應(yīng)用打包成可執(zhí)行jar包時(shí),相應(yīng)的servlet 容器也會(huì)被嵌入到應(yīng)用jar中。并且servlets, filters和listeners都可以通過(guò)聲明為bean來(lái)被容器注冊(cè)。servlet容器還可以通過(guò)外部化配置來(lái)相關(guān)定制屬性

12、,如server.port, server.session.persistence等。 application.yml配置server的端口號(hào)和session超時(shí)時(shí)間,需要注意的是,使用.yml時(shí),屬性名的值和冒號(hào)中間必須有空格,如下: server: port: 8888 session-timeout: 60,13,3、springBoot有哪些特性?,6、開(kāi)啟devtools特性 devtools的熱部署和自動(dòng)重啟 要想在Eclipse中使用Devtools的重啟功能,需要將自動(dòng)編譯功能打開(kāi)。每次保存文件并自動(dòng)編譯后,devtools會(huì)檢測(cè)到classpath內(nèi)容的修改,并觸發(fā)應(yīng)用重啟。

13、重啟時(shí)實(shí)際只重新加載了一部分類(lèi),因此速度會(huì)非常快。詳細(xì)原理會(huì)在后面教程里介紹。 devtools的livereload 開(kāi)啟devtools特性的應(yīng)用在啟動(dòng)時(shí)會(huì)啟動(dòng)一個(gè)livereload的server,在瀏覽器(如chrome,F(xiàn)irefox)安裝livereload插件后,該插件會(huì)監(jiān)測(cè)到livereload server的更新,并自動(dòng)刷新頁(yè)面。,14,主要內(nèi)容,一、springBoot的簡(jiǎn)介 二、springBoot注解 三、springBoot應(yīng)用講解 四、springBoot的發(fā)布 五、springBoot總結(jié),15,3、springBoot注解,1、SpringBootApplica

14、tion 申明讓spring boot自動(dòng)給程序進(jìn)行必要的配置,這個(gè)配置等同于: Configuration ,EnableAutoConfiguration 和 ComponentScan 三個(gè)配置。,16,3、springBoot注解,2、ResponseBody 該注解修飾的函數(shù),會(huì)將結(jié)果直接填充到HTTP的響應(yīng)體中,一般用于構(gòu)建RESTful的api,該注解一般會(huì)配合RequestMapping一起使用。 示例代碼: RequestMapping(/test) ResponseBody public String test() returnok; ,17,3、springBoot注解,

15、3、Controller 用于定義控制器類(lèi),在spring 項(xiàng)目中由控制器負(fù)責(zé)將用戶(hù)發(fā)來(lái)的URL請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的服務(wù)接口(service層),一般這個(gè)注解在類(lèi)中,通常方法需要配合注解RequestMapping。 4、RestController ResponseBody和Controller的合集。,18,3、springBoot注解,5、EnableAutoConfiguration Spring Boot自動(dòng)配置(auto-configuration):嘗試根據(jù)你添加的jar依賴(lài)自動(dòng)配置你的Spring應(yīng)用。例如,如果你的classpath下存在HSQLDB,并且你沒(méi)有手動(dòng)配置任何數(shù)據(jù)庫(kù)

16、連接beans,那么我們將自動(dòng)配置一個(gè)內(nèi)存型(in-memory)數(shù)據(jù)庫(kù)”。 你可以將EnableAutoConfiguration或者SpringBootApplication注解添加到一個(gè)Configuration類(lèi)上來(lái)選擇自動(dòng)配置。如果發(fā)現(xiàn)應(yīng)用了你不想要的特定自動(dòng)配置類(lèi),你可以使用EnableAutoConfiguration注解的排除屬性來(lái)禁用它們。,19,3、springBoot注解,6、ComponentScan 表示將該類(lèi)自動(dòng)發(fā)現(xiàn)(掃描)并注冊(cè)為Bean,可以自動(dòng)收集所有的Spring組件,包括Configuration類(lèi)。我們經(jīng)常使用ComponentScan注解搜索beans

17、,并結(jié)合Autowired注解導(dǎo)入。如果沒(méi)有配置的話,Spring Boot會(huì)掃描啟動(dòng)類(lèi)所在包下以及子包下的使用了Service,Repository等注解的類(lèi)。,20,3、springBoot注解,7、Configuration 相當(dāng)于傳統(tǒng)的xml配置文件,如果有些第三方庫(kù)需要用到xml文件,建議仍然通過(guò)Configuration類(lèi)作為項(xiàng)目的配置主類(lèi)可以使用ImportResource注解加載xml配置文件。 Configuration EnableAutoConfiguration public class RedisConfig Bean(name=jedisPoolConfig) Co

18、nfigurationProperties(prefix=spring.redis) public JedisPoolConfig getRedisConfig() return new JedisPoolConfig(); ,21,3、springBoot注解,8、 PropertySource 如果需要有自定義的屬性文件需要加載,可以使用該注解進(jìn)行注入,并用Value配合使用。 Component PropertySource(value = classpath:perties) public class ConfigUtil Value($hos.id) privat

19、e String hosId; Value($) private String hosName; ,22,3、springBoot注解,9、ImportResource 用來(lái)加載xml配置文件。 10、Bean 用Bean標(biāo)注方法等價(jià)于XML中配置的bean。 11、Value 注入Spring boot perties配置的屬性的值。 Value(value = #message) private String message;,23,3、springBoot注解,12、Environment org.springframework.core.e

20、nv.Environment,環(huán)境類(lèi),spring3.1以后開(kāi)始引入。比如JDK環(huán)境,Servlet環(huán)境,Spring環(huán)境等等;每個(gè)環(huán)境都有自己的配置數(shù)據(jù),如System.getProperties()、System.getenv()等可以拿到JDK環(huán)境數(shù)據(jù);ServletContext.getInitParameter()可以拿到Servlet環(huán)境配置數(shù)據(jù)等等;也就是說(shuō)Spring抽象了一個(gè)Environment來(lái)表示環(huán)境配置。 在springBoot中使用直接用Resource注入,即可獲得系統(tǒng)配置文件perties/yml的屬性值,如果是自定義的配置文件,則

21、需要預(yù)先通過(guò)PropertySource等其他注解注入后,才能獲取。獲取通過(guò)getProperty()方法獲取。,24,主要內(nèi)容,一、springBoot的簡(jiǎn)介 二、springBoot注解 三、springBoot應(yīng)用講解 四、springBoot的發(fā)布 五、springBoot總結(jié),25,3、springBoot應(yīng)用講解,1、與MyBatis的集成 org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1 2、與Redis的集成 org.springframework.boot spring-boot-starter-redis 3

22、、Junit進(jìn)行單元測(cè)試 org.springframework.boot spring-boot-starter-test ,26,主要內(nèi)容,一、springBoot的簡(jiǎn)介 二、springBoot注解 三、springBoot應(yīng)用講解 四、springBoot的發(fā)布 五、springBoot總結(jié),27,3、springBoot的發(fā)布,1、將springBoot項(xiàng)目打包成jar 可以使用maven將項(xiàng)目打包成jar文件,并使用java -jar命令運(yùn)行主main方法,將項(xiàng)目運(yùn)行起來(lái)。,28,3、springBoot的發(fā)布,2、將springBoot項(xiàng)目打包成war 1.pom文件的命令將ja

23、r修改為war。 2、入口類(lèi)實(shí)現(xiàn)SpringBootServletInitializer方法,重寫(xiě)方法: Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) return application.sources(Application.class); 3、這里指定打包的時(shí)候不再需要tomcat相關(guān)的包 org.springframework.boot spring-boot-starter-tomcat ,29,主要內(nèi)容,一、springBoot的簡(jiǎn)介 二、springBoot注

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論