SpringCloud入門相關知識點一
阿新 • • 發佈:2018-12-16
一:什麼是微服務?
- 從技術維度理解
- 優點
- 缺點
- 為什麼選擇SpringCloud作為微服務架構
a:選型依據如下
整體解決方案和框架成熟度,社群熱度,可維護性,學習曲線
b:當前IT公司用的有哪些微服務架構
①阿里Dubbo/HSF(但是Dubbo已經停止更新5年多了,差不多是2012年就不在維護,因為Dubbo團隊解散,
但是2017年阿里又重啟了對Dubbo的維護,在這期間給了SpringCloud機會)
②京東JSF
③新浪微博Motan
④噹噹網Dubbox
........................
c:springCloud是什麼?
簡單而言:SpringCloud就是分散式微服務架構下的一站式解決方案是各個微服務架構落地技術的集合體,俗稱
微服務全家桶。 - SpringCloud和springBoot的關係
二:SpringCloud簡單入門例項之聚合父類microservicecloud
- 簡介
我們建立的這個microservicecloud是聚合工程的一個父類,它的packageing是pom模式,
這個類主要是用來定義pom.xml檔案的,它的作用就是將後面幾個子模組公用的jar包等統一
出來,類似一個抽象父類。 - 我們新建一個java Working Set,因為這是個聚合專案,我們將這些模組放到一個Working Set下
- 建立一個microservicecloud父類工程
new -> maven project -> Packaging選擇pom模式
- pom.xml內容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.topcheer</groupId> <artifactId>microservicecloud</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <properties> <!--專案的編碼定義UTF-8 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--設定java編碼指定JDK1.8 --> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <junit.version>4.12</junit.version> <log4j.version>1.2.17</log4j.version> <lombok.version>1.16.18</lombok.version> </properties> <!--注意:我們在父類的工程裡面才使用 dependencyManagement,這是父類工程的一種管理機制--> <dependencyManagement> <dependencies> <!--引入spring-cloud版本是Dalston.SR1--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> <!--引入spring-boot版本是1.5.9--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.5.9.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.0.4</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.31</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> </dependencies> </dependencyManagement> </project>
三:SpringCloud簡單入門例項之聚合子模組microservicecloud-API
- 選中父類新建一個子模組
- 修改子模組microservicecloud-api的pom.xml檔案
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!--這個就是我們繼承的父類資訊 --> <parent> <groupId>com.topcheer</groupId> <artifactId>microservicecloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <!--下面的是當前子模組Module的名稱 --> <artifactId>microservicecloud-api</artifactId> <!--添加當前模組自己需要的jar包,如果父類已經包含,就不需要新增版本號 --> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> </project>
-
新建Entity且配合lombok使用
-
執行mvn clean install,後面其他的模組可以使用,達到通用的目的,不用每個模組都定義這樣一個實體類
四:SpringCloud聚合子模組之microservicecloud-provider-dept-8001
- 老規矩,選中父類,右擊new->other->Maven Module
父類的變化
- 修改microservicecloud-provider-dept-8001對應的pom.xml資訊
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.topcheer</groupId> <artifactId>microservicecloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>microservicecloud-provider-dept-8001</artifactId> <dependencies> <!--這裡我們引入自己自定義的api通用包,就可以使用Dept部門實體 --> <dependency> <groupId>com.topcheer</groupId> <artifactId>microservicecloud-api</artifactId> <!--maven有一個內建屬性${project.version}表示的是專案的版本號 --> <version>${project.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!--修改後立即熱部署 --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> </project>
- 配置microservicecloud-provider-dept-8001對應的application.yml資訊
server: port: 8001 #設定埠為8001 mybatis: config-location: classpath:mybatis/mybatis.cfg.xml #設定mybatis配置檔案所在的路徑 type-aliases-package: com.topcheer.springcloud.entities #掃描所有實體類所在包 mapper-locations: - classpath:mybatis/mapper/**/*.xml #掃描mybatis的對映檔案 spring: application: name: microservicecloud-dept datasource: type: com.alibaba.druid.pool.DruidDataSource #設定當前資料來源 driver-class-name: org.gjt.mm.mysql.Driver #設定mysql驅動包 url: jdbc:mysql://localhost:3306/cloudDB01 #設定資料庫名稱 username: root password: 897570 dbcp2: min-idle: 5 #設定資料庫連線池的最小維持連線數 initial-size: 5 #設定初始化連結數 max-total: 5 #設定最大連線數 max-wait-millis: 200 #設定連結獲取的最大超時時間
- 配置microservicecloud-provider-dept-8001對應的mybatis.cfg.xml資訊
-
建立對應的資料庫以及表
-
建立部門的dao層介面
-
建立DeptMapper.xml檔案
8:建立service層
9:建立controller層
10:建立microservicecloud-provider-dept-8001專案的啟動類
11:啟動專案並且測試效果(出現下面效果,說明這個子模組成功完成)