內(nèi)容簡述:?
1-微服架構(gòu)
2-SpringBoot由來
3-SpringBoot概述
4-第一個SpringBoot應(yīng)用程序
一:微服架構(gòu)
????1区转、名詞解釋
單機(jī)架構(gòu):系統(tǒng)業(yè)務(wù)量小,所有的代碼都放在一個項(xiàng)目中镶殷,部署在一臺服務(wù)器上聪全。
整個項(xiàng)目所有的服務(wù)都由這臺服務(wù)器提供。
集群架構(gòu):單機(jī)處理到達(dá)瓶頸把單機(jī)復(fù)制幾份構(gòu)成集群载佳。集群中每臺服務(wù)器就叫做這個集群的一個“節(jié)點(diǎn)”炒事,所有節(jié)點(diǎn)構(gòu)成了一個集群。每個節(jié)點(diǎn)都提供相同的服務(wù)蔫慧,這樣系統(tǒng)處理能力就成倍提升挠乳。
問題:用戶的請求由哪個節(jié)點(diǎn)處理?
? ? ?????????????我們能想到的是:此時此刻負(fù)載較小的節(jié)點(diǎn)來處理,平衡節(jié)點(diǎn)壓力。
?解決方案:中間件(負(fù)載均衡服務(wù)器)
? ? ?????????????在訪問節(jié)點(diǎn)前增加一個調(diào)度者角色睡扬,用戶所有的請求都先交給它盟蚣,然后它根據(jù)當(dāng)前節(jié)點(diǎn)負(fù)載情況,決定將這個請求交給哪個節(jié)點(diǎn)處理
以上2種架構(gòu)共同問題:
? ? ? ? ? ? ? ? 1:修改一處卖怜、處處修改
? ? ? ? ? ? ? ? 2:業(yè)務(wù)量的不斷增大刁俭,維護(hù)、分工合作難度大
2韧涨、微服架構(gòu)
分布式微服架構(gòu):通俗的講是將一個完整系統(tǒng)按照業(yè)務(wù)功能拆分成一個個獨(dú)立的子系統(tǒng).
在分布式結(jié)構(gòu)中牍戚,每個子系統(tǒng)就被稱為“服務(wù)”
3、微服架構(gòu)設(shè)計(jì)思路
二:SpringBoot由來
企業(yè)級項(xiàng)目大虑粥、配置如孝、部署繁瑣、開發(fā)效率低娩贷、版本控制集成難度大
三:SpringBoot概述
網(wǎng)址:https://spring.io/projects/spring-boot
概念:Spring Boot是簡化Spring應(yīng)用開發(fā)第晰,約定優(yōu)于配置(內(nèi)置習(xí)慣配置,不需手動配置)彬祖,去繁從簡的一個快速構(gòu)建準(zhǔn)生產(chǎn)環(huán)境基于spring環(huán)境項(xiàng)目的框架茁瘦,是J2EE一站式解決方案。本質(zhì)是:整合市面上大部分流行技術(shù)框架储笑。
優(yōu)點(diǎn):
? ??????????????1. 快速構(gòu)建項(xiàng)目
????????????????2. 對主流開發(fā)框架的零配置的無縫集成
????????????????3. 項(xiàng)目獨(dú)立運(yùn)行甜熔,內(nèi)嵌Servlet容器(tomcat)
????????????????4. 提供運(yùn)行時應(yīng)用監(jiān)控。如指標(biāo)突倍,健康檢查和外部配置
????????????????5. 開發(fā)腔稀、部署效率高
四:第一個SpringBoot應(yīng)用程序
1、統(tǒng)一環(huán)境
–jdk1.8:Spring Boot 推薦jdk1.7及以上羽历;java version "1.8.0_20"
–maven3.x:maven 3.3以上版本焊虏;Apache Maven 3.3.9
–IntelliJIDEA2017:IntelliJ IDEA 2017.3.2 x64
–SpringBoot 2.0.8:2.0.8
2、Maven配置
maven設(shè)置中的settings.xml:
第一處:
? ? ? ? ? ? ?<localRepository>E:/itsoft/maven/MavenLocalRepository/repository</localRepository>
第二處:
????????????????<!--從阿里云下載-->
????????????????????<mirror>
? ? ? ????????????????????<id>alimaven</id>
? ? ????????????? ????????<name>aliyun maven</name>
? ? ? ? ? ? ? ? ? ? ? ? ?<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
? ? ????????? ????????????<mirrorOf>central</mirrorOf>? ? ? ?
? ? ? ? ? ? ????????? </mirror>? ? ?
第三處:
????????????????????<profile>
? ? ? ? ????????????????<id>jdk-1.8</id>
? ? ? ? ????????????????<activation>
? ? ? ? ? ????????????? ????????<activeByDefault>true</activeByDefault>
? ? ? ? ? ? ????????????????????<jdk>1.8</jdk>
? ? ? ????????????????? </activation>
? ? ? ? ????????????????<properties>
? ? ? ? ? ? ????????????????<maven.compiler.source>1.8</maven.compiler.source>
? ? ? ? ? ? ????????????????<maven.compiler.target>1.8</maven.compiler.target>
? ? ? ? ? ? ????????????????<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
? ? ? ????????? ????????</properties>
? ? ????????????</profile>
? ? ????????備注:確定maven環(huán)境設(shè)置正確能正常使用? ?
3秕磷、IDEA配置
? ? ? ? ? ? ? ? 讓IDEA使用咱們自己配置的Maven環(huán)境诵闭,具體設(shè)置如下:
4、Spring Boot之HelloWord1
a.創(chuàng)建Maven工程
?b.導(dǎo)入依賴
????<!-- Inherit defaults from Spring Boot -->
????<parent>
????????<groupId>org.springframework.boot</groupId>
????????<artifactId>spring-boot-starter-parent</artifactId>
????????<version>2.0.8.RELEASE</version>
? ? ?</parent>
????<!-- Add typical dependencies for a web application -->
????<dependencies>
????????<dependency>
????????????<groupId>org.springframework.boot</groupId>
????????????<artifactId>spring-boot-starter-web</artifactId>
????????</dependency>
????</dependencies>
<build>
????<plugins>
????????<plugin>
????????????<groupId>org.springframework.boot</groupId>
????????????<artifactId>spring-boot-maven-plugin</artifactId>
????????</plugin>
????</plugins>
</build>
c.創(chuàng)建主程序澎嚣,啟動應(yīng)用
@SpringBootApplication//標(biāo)識這是一個Spring Boot應(yīng)用
publicclassHelloApplication{
publicstaticvoidmain(String[]args) {
//將spring應(yīng)用啟動起來
SpringApplication.run(HelloApplication.class,args); }}
d.創(chuàng)建Controller疏尿、Service等其它結(jié)構(gòu)代碼
@Controller
publicclassHelloController{
@RequestMapping("/hello")
@ResponseBody
publicStringsayHello(){
return"Hello I Love Spring Boot"; }}
e.運(yùn)行主程序測試,也可打包成JAR運(yùn)行
f币叹、Spring Boot之HelloWord2
????使用Spring Initializer快速構(gòu)建Spring Boot項(xiàng)目