最近在學(xué)習(xí)SpringBoot后端框架,把自己學(xué)習(xí)的東西記錄一下,跟我一樣對Spring Boot 感興趣的小伙伴歡迎一起學(xué)習(xí),一起討論。
一.認(rèn)識SpringBoot
SpringBoot是由 Pivotal公司提供的全新框架,其設(shè)計(jì)目的是用來?:簡化Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置(約定優(yōu)于配置),從而使開發(fā)人員不再需要定義模板化的配置。通過這種方式,SpringBoot致力于在蓬勃發(fā)展的快速開發(fā)應(yīng)用領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
Spring的概述:
Spring基于IOC和AOP兩個(gè)特性對Java開發(fā)本身進(jìn)行了大大的簡化。Spring是J2EE的輕量級替代品,無需開發(fā)重量級的EJB,Spring通過依賴注入和面向切面編程,用簡單的Java對象POJO實(shí)現(xiàn)EJB的功能。
名詞解釋: IOC:Inversion of Control 控制反轉(zhuǎn),還有一個(gè)名字叫DI:Dependency Injection即依賴注入,所謂IOC ,就是由Spring IOC 負(fù)責(zé)對象生命周期和對象之間的關(guān)系。AOP:Aspect Oriented?Programming 面向切面編程,是一種編程思想,是面向?qū)ο缶幊蘋OP?的一種補(bǔ)充。面向?qū)ο缶幊淌菍⒊绦虺橄蟪蔀楦鱾€(gè)層次的對象,面向切面編程是將程序抽象成各個(gè)切面。J2EE: Java 2 platform EnterPrise Edtion 適用于常見服務(wù)器應(yīng)用程序。
關(guān)于EJB:
首先EJB是為了“服務(wù)集群”和“企業(yè)級開發(fā)”,那么EJB到底是個(gè)什么東西,首先我們先來看看官方給出的定義:商務(wù)軟件的核心部分是它的業(yè)務(wù)邏輯,業(yè)務(wù)邏輯抽象了整個(gè)商務(wù)軟件的流程,并使用計(jì)算機(jī)語言將他們實(shí)現(xiàn)。Sun公司給出的定義:是基于分布式事務(wù)處理的企業(yè)級應(yīng)用程序組件,用于開發(fā)和部署多層結(jié)構(gòu)的、分布式的、面向?qū)ο蟮腏AVA應(yīng)用系統(tǒng)的跨平臺(tái)的構(gòu)件體系機(jī)構(gòu)。
J2EE對EJB的應(yīng)用就是 將業(yè)務(wù)邏輯從客戶端軟件中抽取出來封裝在一個(gè)組件中,這個(gè)組件運(yùn)行在一個(gè)獨(dú)立的服務(wù)器上 ,客戶端軟件通過網(wǎng)絡(luò)調(diào)用組件提供的服務(wù)實(shí)現(xiàn)業(yè)務(wù)邏輯。而客戶端軟件簡單到只負(fù)責(zé)網(wǎng)絡(luò)請求和頁面展示和處理結(jié)果。而這個(gè)運(yùn)行在獨(dú)立服務(wù)器上,封裝了業(yè)務(wù)邏輯的組件就是EJB。而EJB的是由RMI為基礎(chǔ)(RMI)遠(yuǎn)程方法調(diào)用。
Spring? VS? SpringBoot:
Spring組件代碼是輕量級的,但它的配置是重量級的。比如一個(gè)WEB項(xiàng)目,至少要集成MVC框架、Tomcat這種WEB容器、日志框架、鏈接數(shù)據(jù)庫要鏈接線程池 等等。也就是說 使用Spring的話每集成一個(gè)組件都要先去寫它的配置文件,比較繁瑣并且容易出錯(cuò)。所以就有了SpringBoot。
SpringBoot對Spring的缺點(diǎn)進(jìn)行了改善和優(yōu)化,基于約定優(yōu)于配置的思想,可以讓開發(fā)人員不必在配置與業(yè)務(wù)邏輯之間進(jìn)行思維的切換,全身心的投入到業(yè)務(wù)邏輯代碼的編寫中,從而大大提高了開發(fā)效率,一定程度上縮短了開發(fā)周期。
SpringBoot的特點(diǎn):
1.獨(dú)立運(yùn)行的Spring項(xiàng)目:SpringBoot可以以jar包的形式獨(dú)立運(yùn)行,運(yùn)行一個(gè)SpringBoot項(xiàng)目只需要通過java-jar來運(yùn)行。
2.內(nèi)嵌Servlet容器:SpringBoot可以選擇內(nèi)嵌Tomcat,Jetty或者UnderTow,這樣我們不要以war包形式部署項(xiàng)目。
3.提供Starter,簡化Maven配置:Spring提供了一系列的 Starter Pom來簡化Maven的依賴加載。
4.自動(dòng)配置Spring:SpringBoot會(huì)根據(jù)在類路徑中的jar 包、類,為jar包中的類自動(dòng)配置Bean,這樣會(huì)極大的減少我們要使用的配置,當(dāng)然,SpringBoot也只是考慮了大多數(shù)的開發(fā)場景,并不是所有的場景都顧及的到,所以在實(shí)際開發(fā)中我們需要自動(dòng)配置Bean,而SpringBoot沒有提供支持,則可以自定義自動(dòng)配置。
5.準(zhǔn)生產(chǎn)的應(yīng)用監(jiān)控:SpringBoot提供基于http、ssh、telnet對運(yùn)行時(shí)的項(xiàng)目進(jìn)行監(jiān)控。
6.無代碼生產(chǎn)和xml配置:SpringBoot的神奇不是借助于代碼生成來實(shí)現(xiàn)的,而是通過條件注解來實(shí)現(xiàn)的,這是Spring 4.x提供的新特性。Spring 4.x提倡使用java配置和注解配置組合,而SpringBoot 不需要任何xml配置即可實(shí)現(xiàn)Spring的所有配置。
Spring Boot 的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):快速構(gòu)建項(xiàng)目,對主流開發(fā)框架的無配置集成,項(xiàng)目可獨(dú)立運(yùn)行,無需外部依賴Servlet容器,提供運(yùn)行時(shí)的應(yīng)用監(jiān)控,極大提高了開發(fā)部署效率。與云計(jì)算的天然集成。
缺點(diǎn):版本迭代速度快,一些模塊改動(dòng)大。由于不用自己做配置,報(bào)錯(cuò)很難準(zhǔn)確定位。
二.Spring Boot 項(xiàng)目搭建
環(huán)境搭建:
1.jdk下載,下載地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html? 需要配置環(huán)境變量
2.開發(fā)工具(IDEA 下載)下載地址:https://www.jetbrains.com/products.html#type=ide注意:官網(wǎng)下載需要破解,破解工具教程網(wǎng)上好多。
3.Maven下載,下載地址:http://maven.apache.org/download.cgi
注意看自己的系統(tǒng),mac/linux 下載.gz,windows下載.zip? 需要配置環(huán)境變量
4.Maven配置文件修改,一般公司都有自己的私有倉庫,配置好就可以了,記得在idea里面應(yīng)用一下,idea中應(yīng)用配置如下圖(1-01):

5.安裝mysql? 下載地址:https://dev.mysql.com/downloads/mysql
這里需要注意一下,安裝mysql 的過程中需要設(shè)置用戶名密碼,千萬要記著,要不然會(huì)很麻煩
mysql的常用命令我會(huì)單獨(dú)寫一篇文章來記錄,這里先不說了。
創(chuàng)建Spring Boot 項(xiàng)目:
創(chuàng)建方式有三種:
1.IDEA創(chuàng)建(推薦使用這種創(chuàng)建方式)
2.Spring官網(wǎng)
3.Maven
IDEA創(chuàng)建:
第一步:File->New->Project->選擇Spring Initiallzr->Project Sdk(JDK的版本)選1.8,然后點(diǎn)擊 Next 具體操作頁面如圖1-02

第二步:設(shè)置項(xiàng)目項(xiàng)目名,開發(fā)語言,java版本信息等,然后Next,如圖1-03

第三步:選擇項(xiàng)目類型,這里我選擇的是web->Spring Web 如圖1-04

第四步:選擇項(xiàng)目的存放路徑,點(diǎn)擊Finish,項(xiàng)目就創(chuàng)建好了。如圖1-05

Spring 官網(wǎng)創(chuàng)建:
地址:https://start.spring.io/?打開這個(gè)地址就會(huì)看到圖1-06
注意點(diǎn):需要點(diǎn)擊ADD DEPENDENGCIES 選擇Spring Web 如圖 1-07
然后點(diǎn)擊GENERATE(生成并下載),然后用IDEA導(dǎo)入工程就可以了


Maven工程創(chuàng)建:
其實(shí)Spring Boot項(xiàng)目 說白了就是一個(gè)Maven項(xiàng)目,就是多了Spring Boot的一些配置,所以
這種創(chuàng)建方式其實(shí)就是在IDEA中先創(chuàng)建一個(gè)Maven工程,然后添加Spring Boot的依賴,然后手動(dòng)創(chuàng)建項(xiàng)目啟動(dòng)類(比如類名為:DemoApplication)在類上面加一個(gè)注解?@SpringBootApplication,然后在這個(gè)Java類中寫一個(gè)main方法,里面寫一句代碼:
SpringApplication.run(DemoApplication.class, args);
三.總結(jié)
Spring Boot 框架博大精深,文章中只是寫了一個(gè)最最最簡單的用法,有什么寫的不對的地方,歡迎各位大神不吝賜教。
一邊學(xué)習(xí),一邊記錄總結(jié),認(rèn)真學(xué)習(xí),不負(fù)韶華,加油?。?!