版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
SpringBoot入門培訓(xùn)1●主要內(nèi)容一、springBoot的簡介二、springBoot注解三、springBoot應(yīng)用講解四、springBoot的發(fā)布五、springBoot總結(jié)21、springBoot背景多年以來,SpringIO平臺飽受非議的一點就是大量的XML配置以及復(fù)雜的依賴管理。在2013年的SpringOne2GX會議上,Pivotal的CTOAdrianColyer回應(yīng)了這些批評,并且特別提到該平臺將來的目標之一就是實現(xiàn)免XML配置的開發(fā)體驗。Boot所實現(xiàn)的功能超出了這個任務(wù)的描述,開發(fā)人員不僅不再需要編寫XML,而且在一些場景中甚至不需要編寫繁瑣的import語句。在對外公開的beta版本剛剛發(fā)布之時,Boot描述了如何使用該框架在140個字符內(nèi)實現(xiàn)可運行的web應(yīng)用,從而獲得了極大的關(guān)注度,該樣例發(fā)表在tweet上。32、什么是springBoot?1、SpringBoot是由Pivotal團隊提供的全新框架,SpringBoot并不是要成為SpringIO平臺里面眾多“Foundation”層項目的替代者。SpringBoot的目標不在于為已解決的問題域提供新的解決方案,而是為平臺帶來另一種開發(fā)體驗,從而簡化對這些已有技術(shù)的使用。2、該框架使用了特定的方式(繼承starter,約定優(yōu)先于配置)來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapidapplicationdevelopment)成為領(lǐng)導(dǎo)者。
3、SpringBoot是基于Spring4進行設(shè)計,承了原有Spring框架的優(yōu)秀基因。它并不是一個框架,從根本上將,它就是一些庫的集合,maven或者gradle項目導(dǎo)入相應(yīng)依賴即可使用SpringBoot,而且無需自行管理這些庫的版本。
42、為什么使用springBoot?1、SpringBoot是為簡化Spring項目配置而生,使用它使得jar依賴管理以及應(yīng)用編譯和部署更為簡單。SpringBoot提供自動化配置,使用SpringBoot,你只需編寫必要的代碼和配置必須的屬性。
2、使用SpringBoot,只需20行左右的代碼即可生成一個基本的SpringWeb應(yīng)用,并且內(nèi)置了tomcat,構(gòu)建的fatJar包通過java-jar就可以直接運行。
3、如下特性使得SpringBoot非常契合微服務(wù)的概念,可以結(jié)合SpringBoot與SpringCloud和Docker技術(shù)來構(gòu)建微服務(wù)并部署到云端:·一個可執(zhí)行jar即為一個獨立服務(wù)·很容易加載到容器,每個服務(wù)可以在自己的容器(例如docker)中運行·通過一個腳本就可以實現(xiàn)配置與部署,很適合云端部署,并且自動擴展
也更容易
53、springBoot有哪些特性?1、無需手動管理依賴jar包的版本Spring-boot-*的jar包已對一些功能性jar包進行了集成,示例如下:·spring-boot-starter 核心SpringBootstarter,包括自動配置支持,日志和YAML·spring-boot-starter-actuator 生產(chǎn)準備的特性,用于幫你監(jiān)控和
管理應(yīng)用·spring-boot-starter-web 對全棧web開發(fā)的支持,包括Tomcat和 spring-webmvc·spring-boot-starter-aop 對面向切面編程的支持,包括spring-aop 和AspectJ·spring-boot-starter-jdbc 對JDBC數(shù)據(jù)庫的支持·spring-boot-starter-security 對spring-security的支持63、springBoot有哪些特性?1、無需手動管理依賴jar包的版本Spring-boot-*的jar包已對一些功能性jar包進行了集成,示例如下:·spring-boot-starter 核心SpringBootstarter,包括自動配置支持,日志和YAML·spring-boot-starter-actuator 生產(chǎn)準備的特性,用于幫你監(jiān)控和
管理應(yīng)用·spring-boot-starter-web 對全棧web開發(fā)的支持,包括Tomcat和 spring-webmvc·spring-boot-starter-aop 對面向切面編程的支持,包括spring-aop 和AspectJ·spring-boot-starter-jdbc 對JDBC數(shù)據(jù)庫的支持·spring-boot-starter-security 對spring-security的支持73、springBoot有哪些特性?1、無需手動管理依賴jar包的版本:·spring-boot-starter-amqp通過spring-rabbit來支持AMQP協(xié)議(AdvancedMessageQueuingProtocol)?!pring-boot-starter-ws支持SpringWebServices?!pring-boot-starter-redis支持Redis鍵值存儲數(shù)據(jù)庫,包括spring-redis。·spring-boot-starter-test
支持常規(guī)的測試依賴,包括JUnit、Hamcrest、Mockito以及spring-test模塊。83、springBoot有哪些特性?2、獨立運行的Spring項目SpringBoot默認將應(yīng)用打包成一個可執(zhí)行的jar包文件,構(gòu)建成功后使用java-jar命令即可運行應(yīng)用。或者在應(yīng)用項目的主程序中運行main函數(shù)即可,不需要依賴tomcat、jetty等外部的應(yīng)用服務(wù)器。其中內(nèi)置的servlet
Container:此外,你仍然可以部署SpringBoot項目到任何兼容Servlet3.0+的容器。NameServletVersionJavaVersionTomcat83.1Java7+Tomcat73.0Java6+Jetty9.33.1Java8+Jetty9.23.1Java7+Jetty83.0Java6+93、springBoot有哪些特性?3、自動配置,無需xml·SpringBoot嘗試根據(jù)你添加的jar依賴自動配置你的應(yīng)用。例如,如果HSQLDB在類路徑中,并且你沒有手動配置任何db連接bean,則SpringBoot會自動配置一個內(nèi)存db。
·使用@EnableAutoConfiguration或者@SpringBootApplication注解,配
合@Configuration注解類,即可達到自動配置的目的?!pringBoot的這種自動配置是非侵入式的,你可以定義自己的配置或bean來替代自動配置的內(nèi)容。103、springBoot有哪些特性?4、外部化配置SpringBoot可以使用properties文件,YAML文件,環(huán)境變量,命令行參數(shù)等來外部化配置。屬性值可以使用@Value注解直接注入到bean中,并通過Spring的Environment抽象或經(jīng)過@ConfigurationProperties注解綁定到結(jié)構(gòu)化對象來訪問。實例如下:@Component@ConfigurationProperties(prefix="spring.datasource")publicclassApplicationUtil{privateStringname;privateStringurl;}113、springBoot有哪些特性?5、嵌入式servlet容器SpringBoot的web模塊內(nèi)置嵌入的Tomcat,Jetty,Undertow來構(gòu)建自包含的Servlet容器。web應(yīng)用打包成可執(zhí)行jar包時,相應(yīng)的servlet容器也會被嵌入到應(yīng)用jar中。并且servlets,filters和listeners都可以通過聲明為bean來被容器注冊。servlet容器還可以通過外部化配置來相關(guān)定制屬性,如server.port,server.session.persistence等。application.yml配置server的端口號和session超時時間,需要注意的是,使用.yml時,屬性名的值和冒號中間必須有空格,如下:server:port:8888session-timeout:60123、springBoot有哪些特性?6、開啟devtools特性·devtools的熱部署和自動重啟要想在Eclipse中使用Devtools的重啟功能,需要將自動編譯功能打開。每次保存文件并自動編譯后,devtools會檢測到classpath內(nèi)容的修改,并觸發(fā)應(yīng)用重啟。重啟時實際只重新加載了一部分類,因此速度會非常快。詳細原理會在后面教程里介紹?!evtools的livereload開啟devtools特性的應(yīng)用在啟動時會啟動一個livereload的server,在瀏覽器(如chrome,F(xiàn)irefox)安裝livereload插件后,該插件會監(jiān)測到livereloadserver的更新,并自動刷新頁面。13●主要內(nèi)容一、springBoot的簡介二、springBoot注解三、springBoot應(yīng)用講解四、springBoot的發(fā)布五、springBoot總結(jié)143、springBoot注解1、@SpringBootApplication
申明讓springboot自動給程序進行必要的配置,這個配置等同于:@Configuration
,@EnableAutoConfiguration
和
@ComponentScan
三個配置。153、springBoot注解2、@ResponseBody
該注解修飾的函數(shù),會將結(jié)果直接填充到HTTP的響應(yīng)體中,一般用于構(gòu)建RESTful的api,該注解一般會配合@RequestMapping一起使用。示例代碼:@RequestMapping("/test")@ResponseBodypublicStringtest(){return"ok";}163、springBoot注解3、@Controller
用于定義控制器類,在spring
項目中由控制器負責(zé)將用戶發(fā)來的URL請求轉(zhuǎn)發(fā)到對應(yīng)的服務(wù)接口(service層),一般這個注解在類中,通常方法需要配合注解@RequestMapping。4、@RestController@ResponseBody和@Controller的合集。173、springBoot注解5、@EnableAutoConfiguration
SpringBoot自動配置(auto-configuration):嘗試根據(jù)你添加的jar依賴自動配置你的Spring應(yīng)用。例如,如果你的classpath下存在HSQLDB,并且你沒有手動配置任何數(shù)據(jù)庫連接beans,那么我們將自動配置一個內(nèi)存型(in-memory)數(shù)據(jù)庫”。你可以將@EnableAutoConfiguration或者@SpringBootApplication注解添加到一個@Configuration類上來選擇自動配置。如果發(fā)現(xiàn)應(yīng)用了你不想要的特定自動配置類,你可以使用@EnableAutoConfiguration注解的排除屬性來禁用它們。183、springBoot注解6、@ComponentScan
表示將該類自動發(fā)現(xiàn)(掃描)并注冊為Bean,可以自動收集所有的Spring組件,包括@Configuration類。我們經(jīng)常使用@ComponentScan注解搜索beans,并結(jié)合@Autowired注解導(dǎo)入。如果沒有配置的話,SpringBoot會掃描啟動類所在包下以及子包下的使用了@Service,@Repository等注解的類。193、springBoot注解7、@Configuration
相當于傳統(tǒng)的xml配置文件,如果有些第三方庫需要用到xml文件,建議仍然通過@Configuration類作為項目的配置主類——可以使用@ImportResource注解加載xml配置文件。@Configuration@EnableAutoConfigurationpublicclassRedisConfig{
@Bean(name="jedisPoolConfig")@ConfigurationProperties(prefix="spring.redis")publicJedisPoolConfiggetRedisConfig(){returnnewJedisPoolConfig();}}203、springBoot注解8、@PropertySource
如果需要有自定義的屬性文件需要加載,可以使用該注解進行注入,并用@Value配合使用。@Component@PropertySource(value="classpath:perties")publicclassConfigUtil{ @Value("${hos.id}") privateStringhosId; @Value("${}")privateStringhosName;}213、springBoot注解9、@ImportResource
用來加載xml配置文件。10、@Bean
用@Bean標注方法等價于XML中配置的bean。11、@Value
注入Springbootperties配置的屬性的值。
@Value(value="#{message}")privateStringmessage;223、springBoot注解12、Environment
org.springframework.core.env.Environment,環(huán)境類,spring3.1以后開始引入。比如JDK環(huán)境,Servlet環(huán)境,Spring環(huán)境等等;每個環(huán)境都有自己的配置數(shù)據(jù),如System.getProperties()、System.getenv()等可以拿到JDK環(huán)境數(shù)據(jù);ServletContext.getInitParameter()可以拿到Servlet環(huán)境配置數(shù)據(jù)等等;也就是說Spring抽象了一個Environment來表示環(huán)境配置。
在springBoot中使用直接用@Resource注入,即可獲得系統(tǒng)配置文件perties/yml的屬性值,如果是自定義的配置文件,則需要預(yù)先通過@PropertySource等其他注解注入后,才能獲取。獲取通過getProperty()方法獲取。23●主要內(nèi)容一、springBoot的簡介二、springBoot注解三、springBoot應(yīng)用講解四、springBoot的發(fā)布五、springBoot總結(jié)243、springBoot應(yīng)用講解1、與MyBatis的集成<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency>2、與Redis的集成<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId></dependency>3、Junit進行單元測試<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency>25●主要內(nèi)容一、springBoot的簡介二、springBoot注解三、springBoot應(yīng)用講解四、springBoot的發(fā)布五、springBoot總結(jié)263、springBoot的發(fā)布1、將springBoot項目打包成jar
可以使用maven將項目打包成jar文件,并使用java-jar命令運行主main方法,將項目運行起來。273、springBoot的發(fā)布2、將springBoot項目打包成war
1.pom文件的命令將<packaging>jar</packaging>修改為war。2、入口類實現(xiàn)SpringBootServletInitializer方法,重寫方法:@OverrideprotectedSpringApplicationBuilder configure(SpringApplicationBuilderapplication){returnapplication.sources(Application.class);}
3、這里指定打包的時候不再需要tomcat相關(guān)的包
<exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學(xué)年統(tǒng)編版三年級上冊語文第七單元提高試卷(附參考答案)
- (新教材)2026年青島版八年級上冊數(shù)學(xué) 4.3 角的平分線 課件
- 護理之愛守護生命
- 2025年辦公空間租賃合同協(xié)議
- 多層次協(xié)同預(yù)測模型
- 基于護理信息系統(tǒng)的護士工作負擔變化分析
- 多動癥共病睡眠障礙關(guān)聯(lián)
- 培訓(xùn)行業(yè)政策解讀
- 2026 年中職酒店管理(客房服務(wù)技能)試題及答案
- 房產(chǎn)管理題庫及答案
- 2025年5G網(wǎng)絡(luò)的5G網(wǎng)絡(luò)技術(shù)標準
- 盆底康復(fù)進修課件
- 羊絨紗線知識培訓(xùn)
- 鋼板租賃合同條款(2025版)
- 輻射性白內(nèi)障的發(fā)現(xiàn)與研究
- 珠海市產(chǎn)業(yè)和招商扶持政策匯編(2025年版)
- 國開機考 答案2人力資源管理2025-06-21
- 物理●山東卷丨2024年山東省普通高中學(xué)業(yè)水平等級考試物理試卷及答案
- 提升會計職業(yè)素養(yǎng)的試題及答案
- 電動吸盤出租合同協(xié)議
- 胃穿孔的相關(guān)試題及答案
評論
0/150
提交評論